深入学习C++
来源:互联网 发布:重庆鸿巨网络怎么样 编辑:程序博客网 时间:2024/06/15 16:31
1.定义和声明的区别:
定义声明只能出现一次(系统会为其分配存储空间:所有对该变量的使用都关联到同一存储空间)可以出现多次一般不应该放在头文件里,因为可能会被同一project中不同文件包含多次从而导致多重定义链接错误!
但有三类例外:类、值在编译时就已知的const对象、inline函数。
因为这三类的实体可以在多个源文件中定义,只要每个源文件中的定义是相同的即可。
另一方面,需要在头文件中定义这三类实体,也是因为编译器需要它们的定义(不只是声明)来产生代码。
const对象可以在头文件中定义的另外一个原因是const对象定义默认为从属于定义该对象的文件的局部变量。
(常量表达式是编译器在编译时能够计算出结果的表达式。
当const整型变量通过常量表达式自我初始化时,const变量要成为常量表达式必须满足初始化式是每个文件都可见的。)
而为了能够让多个文件使用相同的常量值,const变量和它的初始化式必须是每个文件都可见的。
因此一般把const变量定义在头文件中,使得无论何时使用,编译器都能看见其初始化式。
most编译器在编译时会用相应的常量表达式替换这些const变量的任何使用,所以实践中不存在任何存储空间用于存储
用常量表达式初始化的const变量。
如果const变量不是用常量表达式初始化的,就不能在头文件中定义。而应该在一个源文件中定义并初始化,同时在
头文件中为其添加extern声明,以使其能被多个文件共享。
如何区分定义和声明:
相同点:变量名前都有类型;
区分处:有初始化式(有初始值)——表示这是定义;
没有用extern修饰符修饰——表示这是定义。
0 0
- 深入学习C
- 深入学习C#.NET
- 深入学习c#(2)
- 深入学习C语言知识点
- 如何深入学习C语言
- 深入学习C语言计划
- C语言深入学习系列
- 深入系统学习C/C++
- C语言--数组深入学习
- [c专家编程学习] 深入数组1
- 深入学习C语言知识点checklist
- 深入学习C语言知识点checklist
- 深入学习C语言知识点checklist
- c语言深入学习系列内存管理
- 深入学习C语言知识点checklist--数组
- C语言深入学习--checklist(1)字符串
- C语言深入学习--checklist3:结构体
- C语言深入学习--checklist6:函数、变量
- 和菜鸟一起学android4.0.3源码之USB wifi移植心得
- python实现模拟浏览器访问网页
- 里氏原则
- Vim的基础配置
- 使用SharePoint 2013 社区功能 可以分钟搭建 微博和BBS网站
- 深入学习C++
- MTK效率最高编译命令
- sqlserver基础操作
- C++易犯错误不可不知
- 测试一下
- (1.2.6.4)有向图的拓扑排序和验环
- 【记录】MyEclipse报错Unhandled event loop exception No more handles 问题排查
- 插入排序
- jq 易忘记的基础知识点