中易网

c++语言怎样给常数据成员初始化啊?

答案:4  悬赏:0  
解决时间 2021-01-16 12:20
  • 提问者网友:送舟行
  • 2021-01-16 04:50
c++语言怎样给常数据成员初始化啊?
最佳答案
  • 二级知识专家网友:毛毛
  • 2021-01-16 05:59
只能这样——这叫成员初始化列表方式,如:

class A{
    public:
        A():pi(3.1415926),e(2.71828){}
        void dsp(){
            cout << pi << ' ' << e << endl;
        }
    private:
        const double pi,e;
};
int main(void){
    A a;
    a.dsp();
    return 0;
}追问const呢?追答什么const?pi和e不都是const吗?你指什么const?不是const就用不着用列表方式初始化了!追问常量不是要用const标注的吗?追答private:
const double pi,e;
这还没有标注?那个const白写了?
全部回答
  • 1楼网友:洎扰庸人
  • 2021-01-16 07:08
静态变量吧追问书上说是给它初始化
  • 2楼网友:污到你湿
  • 2021-01-16 06:57
以const修饰的变量?
如果是的话,在定义的时候初始化就可以啊,比如const int nTest = 0;
作为一个类的数据成员,我记得也可以这么写追问这是在类中定义的啊,举例说明可好。。。追答class A
{
public:
const int nTest = 0;
};
可以这么写,私有也可这么写,以const修饰的变量在定义时必须初始化,所以我觉得(除非用初始化列表,见楼上)一般情况下不能用构造函数来初始化,好像C++语法里有一种强制转换可以把const修饰的变量强制转换成非const的,那样的话估计可以,不过我不明白你为啥一定要在构造函数中初始化呢……
纠正一个经常引起误会的问题,变量就是变量,即便有const修饰,那也是变量。《C++ primier plus》第五版中有明确指出
  • 3楼网友:平生事
  • 2021-01-16 06:35
我暂时保留我的看法!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息