类的静态常量数组初始化
2014-03-18 10:55
218 查看
类里面放声明;
类外面放定义;
声明放在.h
实现放在.cpp
实现时不需要加static
编译通过不代表对!!!
如果一个变量在头文件定义,一般得目的就是要定义一个全局变量,这个变量应该在整个工程都可以被访问到。
而static得含义是迫使那个变量只在某个文件可见。
假定你在头文件定义static int i=1;
且这个头文件分别被a.cpp和b.cpp包含
这种情况吓当然不会有编译错误。
“没有错误”的实质是在a.cpp和b.cpp里会分别定义一个名字叫i的整型变量,两个i毫无关系。在a.cpp里修改i,他不会导致b.cpp里的i变化,这一般来说都不是大家期望的东西
种用static修饰的方法在99%以上的情况都是错误的。把编译错误弄没不是编程的目的,目的在于真正逻辑的正确性
类外面放定义;
声明放在.h
实现放在.cpp
实现时不需要加static
编译通过不代表对!!!
如果一个变量在头文件定义,一般得目的就是要定义一个全局变量,这个变量应该在整个工程都可以被访问到。
而static得含义是迫使那个变量只在某个文件可见。
假定你在头文件定义static int i=1;
且这个头文件分别被a.cpp和b.cpp包含
这种情况吓当然不会有编译错误。
“没有错误”的实质是在a.cpp和b.cpp里会分别定义一个名字叫i的整型变量,两个i毫无关系。在a.cpp里修改i,他不会导致b.cpp里的i变化,这一般来说都不是大家期望的东西
种用static修饰的方法在99%以上的情况都是错误的。把编译错误弄没不是编程的目的,目的在于真正逻辑的正确性
相关文章推荐
- 如何在C++11中正确的初始化静态常量成员数组
- [C++] 如何初始化常量数组成员
- 静态常量整数成员在class内部直接初始化
- 数组(静态初始化-常见问题)
- OpenCV Mat 只能用静态数组定义时初始化,动态数组赋值给Mat需要逐元素进行. MATLAB,OpenCV,VS混合编程
- java数组静态初始化
- stl 静态数组初始化vector及pair,vector混合使用
- java数组,List,Set,Map动态和静态初始化
- 变量,常量,字符,字符串,数组的声明及初始化
- 静态常量的初始化
- JavaSE7基础 一维数组的初始化 静态与动态方式
- 小时代5-perl 常量、多维数组及变量的初始化
- [置顶] 静态初始化数组
- [swift]的简单使用常量变量。字典 数组的初始化
- 关于“只有静态常量整型数据成员才可以在类中初始化”
- 静态初始化数组由函数返回
- 静态常量成员无法直接初始化?
- C++11特有的数值、数组初始化方法、常量的符号名称 const和浮点数、bool、自动推断类型auto
- 关于多维数组的静态初始化的分析[图结合程序说明]
- error:只有静态常量整型数据成员才可以在类中初始化