C++细节1
2015-06-01 11:24
260 查看
1、为了让多个文件访问相同的变量,C++中区分了声明与定义。
声明用于向程序表明变量的类型和名字,使用extern关键字,不分配存储空间。
非const变量默认为extern
//f1.cpp
int a = 3;
//f2.cpp
extern int a;
++a;
在f1.cpp中a为非const变量,和extern int a = 3 等价。
当变量为const类型时,需要添加extern。
//f1.cpp
extern const int a = 3;
//f2.cpp
extern const int a;
2、在类中,类的定义数据成员与变量的定义存在非常重要的区别。不能将类成员的初始话作为其定义的一部分。定义数据成员时只能指定数据成员的名字和类型。数据成员是通过构造函数初始化的。
3、在设计自己的头文件时,头文件只用于声明而不是定义。如果出现定义,在使用时会出现重定义的错误。一些const对象的可以在头文件中定义(常量表达式):
const int a=3;//ok
extern const int a=3;//error
当然const对象也可以和替他类型一样,在头文件中声明,在源文件中定义。
4、const对象必须初始化
声明用于向程序表明变量的类型和名字,使用extern关键字,不分配存储空间。
非const变量默认为extern
//f1.cpp
int a = 3;
//f2.cpp
extern int a;
++a;
在f1.cpp中a为非const变量,和extern int a = 3 等价。
当变量为const类型时,需要添加extern。
//f1.cpp
extern const int a = 3;
//f2.cpp
extern const int a;
2、在类中,类的定义数据成员与变量的定义存在非常重要的区别。不能将类成员的初始话作为其定义的一部分。定义数据成员时只能指定数据成员的名字和类型。数据成员是通过构造函数初始化的。
3、在设计自己的头文件时,头文件只用于声明而不是定义。如果出现定义,在使用时会出现重定义的错误。一些const对象的可以在头文件中定义(常量表达式):
const int a=3;//ok
extern const int a=3;//error
当然const对象也可以和替他类型一样,在头文件中声明,在源文件中定义。
4、const对象必须初始化
相关文章推荐
- C++细节1
- C++11(及现代C++风格)和快速迭代式开发
- Effective C++:条款28:避免返回 handles 指向对象内部成员
- 通过C++的try和catch来捕获SEH异常
- C语言文件读写操作总结
- C语言-动态分配内存对任意个字符串进行排序
- LeetCode || Median of Two Sorted Arrays
- C语言-输入任意个字符串
- C语言-对输入n个字符串进行排序(无导入string.h)
- C语言-对输入的n个字符串进行排序
- C语言 对输入的一个字符串进行排序
- 电子词典的内存分配方式改进
- C++中各种类型的成员变量的初始化方法
- Effective C++ 条款35
- 使用 C++ 处理 JSON 数据交换格式
- ubuntu上调过C语言画简单的函数曲线
- C++ 9.1 顺序容器-----vector、list、deque
- C++11:使用 auto/decltype/result_of使代码可读易维护
- C++ 重写重载重定义区别
- C++中虚函数工作原理和(虚)继承类的内存占用大小计算