标题:类中常量成员数组如何初始化?
只看楼主
russilong
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-8-23
 问题点数:0 回复次数:5 
类中常量成员数组如何初始化?
...
class T{
const char a[4];
public:
  ...
};

请问数组a可否初始化,如果可以,该怎样初始化?如果不可以,请指明原因。谢谢。


[此贴子已经被作者于2005-9-11 22:35:42编辑过]


搜索更多相关主题的帖子: 常量 成员 public char const 
2005-09-11 22:33
tiu
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2005-9-12
得分:0 
在构造函数中初始化

人怎样才能有恒心呢?~~~~~
2005-09-12 17:27
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 
//请看下面的Demo,请用Dev来编译
#include <iostream>
#include <cstdlib>
using namespace std;

class Demo
{
private:
  static const int A =3;                    // mode 1
  enum{B = 4,C};                            // mode 2, but just for integer
  static const double PI = 3.14;
  static const int a[2];
public:
  void display()
  {
    cout<<"A is: "<<A<<endl;
    cout<<"B is: "<<B<<endl;
    cout<<"C is: "<<C<<endl;
    cout<<"PI is: "<<PI<<endl;
    cout<<"Value of const array are: "<<a[0]<<"  "<<a[1]<<endl;
  }
};
const int Dem:a[2] = {1,2};

int main()
{
    Demo demo;
    demo.display();
    system("pause");
    return 0;
}

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-09-13 02:09
russilong
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-8-23
得分:0 
如果不是用static const只是用const呢?据我所知,普通的常量,常量指针都可以通过构造函数初始化列表来完成。甚至常量指针数组都可以通过memset这样的函数在构造函数中简单的初始(可能并不是所有的编译器都支持),那常量数组是否可以呢?我用了很多方法都不行。

2005-09-13 08:06
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
得分:0 
russilong, 3楼的代码已经给了你一个解答, 按C++ 标准只有这两种模式, mode1 和 mode2, 见3楼的Demo, 如果 const 变量在 一个class 中定义, 只有上面这两种模式, 是不可以在构造函数中赋值的。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2005-09-14 00:04
russilong
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-8-23
得分:0 
看来标准很重要,要多多熟悉

2005-09-14 09:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-27346-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016739 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved