常成员变量数组初始化的问题
来源:互联网 发布:.com.cn是什么域名 编辑:程序博客网 时间:2024/06/05 07:55
今晚在论坛里看到一篇帖子(http://topic.csdn.net/u/20100808/20/6d0557e2-62ca-4b5c-9f61-153206072de4.html),是关于常成员变量数组初始化的问题,以前碰到过这个问题,在网上搜了一下,只看到两种替代的方案。不知道可否真正实现常成员变量数组初始化,不管怎样,先在这里记一下:
问题:如何给类的常成员变量数组初始化?
时间:2010-08-08
程序举例:
- class A
- {
- public:
- A();
- const int d[2];
- };
- A::A()// 如何初始化数组d?
- {
- }
- void main()
- {
- A a;
- return 0;
- }
由于类的常成员变量必须在构造函数初始化列表中初始化,但这里常成员变量是个数组,单独使用d[0](0),d[1](0)在vc6里编译通不过,下面列举了两种替代方案:
替代方案1:
- const int arr[2] = {1, 2};
- class A
- {
- public:
- A();
- const int *d;
- };
- A::A():d(arr)
- {
- }
- int main()
- {
- A a;
- cout << a.d[0] << ", " << a.d[1] << endl;
- return 0;
- }
输出:1, 2
替代方案2:
- class A
- {
- public:
- A();
- static const int d[2];
- };
- A::A()
- {
- }
- const int A::d[2] = {3, 4};
- int main()
- {
- A a;
- cout << a.d[0] << ", " << a.d[1] << endl;
- return 0;
- }
输出:3, 4
FROM: http://blog.csdn.net/simplebelief/article/details/5797465
0 0
- 常成员变量数组初始化的问题
- 常成员变量数组初始化的问题
- 成员变量初始化的问题
- 类的数组成员变量的初始化
- 类的数组成员变量的初始化
- 类的数组成员变量的初始化
- C++类特殊成员变量(引用、静态、常成员变量)的初始化操作
- 常数据成员的初始化
- 变量和类成员的初始化问题
- C++成员变量的初始化顺序问题
- C++成员变量的初始化顺序问题
- C++成员变量的初始化顺序问题
- C++成员变量的初始化顺序问题
- C++成员变量的初始化顺序问题
- C++成员变量的初始化顺序问题
- C++成员变量的初始化顺序问题
- C++成员变量的初始化顺序问题
- C++成员变量的初始化顺序问题
- hadoop编译的本地库会依赖操作系统吗?比如amd64的系统编译的可以在其他X86OS上工作吗??hadoop本地库与系统版本不一致
- Event原理解析
- 编辑删除收藏在tableView的内容
- DisplayMetrics简介
- (四)seajs.config中vars、alias、paths和map的作用,以及util-path路径解析源码
- 常成员变量数组初始化的问题
- ACE_POSIX_AIOCB_Proactor和ACE_WIN32_Proactor的区别
- 进一步体会到面对对象
- iOS开发 实战篇---Xcode7免费真机测试流程
- 按钮写到UItableView的头视图还是列表之外
- UI资料
- Java的StringBuffer类
- 【codevs 2975】与2,3,5无关的数
- Head First C# 实验室 赛狗日