#include <cstdlib>
#include <iostream>
using namespace std;
class A{
private:
const int a;//定义一个常成员变量,其值能切只能通过构造函数
//初始化创建对象时被初始化为一个值,而且构造函数必须
//负担起这个责任。
public:
// 1 A(){};//此形式编译不通过,因为没有为常成员初始化。
A(int b=10):a(b){};
// 3 A(){a=1;};//此形式也不行,这是在未初始化,而想通过赋值改变为其初始化是不妥的
int fun(){return a;};
};
//测试代码
int main(int argc, char *argv[])
{
A a;
cout<<a.fun()<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
在类中定义一个常成员变量,则该变量的值能且只能在类实例化的时候通过调用构造函数对其进行初始化。
以上1和3两种情况都会出错。