Sign-up....

关于const!

C++中,在类中定义一个const数据成员,怎么对其初始化?

[32 byte] By [msdn] at [2007-8-15 8:45:21]
# 1 Re: 关于const!

可以在初始化列表中吧

xpdavis at 2006-5-9 15:37:44 >
# 2 Re: 关于const!

我试了,编译出错

NMaple at 2006-5-9 15:41:48 >
# 3 Re: 关于const!

是不是cpp中要定义一下。

benh at 2006-5-9 15:46:58 >
# 4 Re: 关于const!

class X

{

private:

const int data_;

public:

X(int data):data_(data){}

};

用gcc编译毫无问题。

relianceslee at 2006-5-9 15:50:40 >
# 5 Re: 关于const!

如果是整数类型可以在类定义中:

class A

{

...

const int m_nTest = 2;

...

}

或者其他类型 const int A::m_nTest = 2;

anothervip at 2006-5-9 15:52:57 >
# 6 Re: 关于const!

LZ应该搞明白 初始化 和 赋值 是不一样的,const值只能初始化,不能被赋值。

所以,在类的构造函数里,应该用a(_a)的方式初始化,如果在函数体内按照a = _a会出错。

yysbest at 2006-5-9 16:10:43 >

C/C++

All Classified