只有静态常量整型数据成员才可以在类中初始化

来源:互联网 发布:python渗透测试 pdf 编辑:程序博客网 时间:2024/06/10 14:52

常整型静态数据成员可以在类中直接初始化,而常实型静态数据成员不可以

class circle{int a; // 普通变量,不能在类中初始化static int b; // 静态变量,不能在类中初始化static const int c=2; // 静态常量,可以在类中初始化static const double PI=3.1416;//error C2864: 只有静态常量整型数据成员才可以在类中初始化} ;//b可以在类外进行初始化,且所有对象共享一个b的值:int circle::b = 2;

另一篇博客:

http://blog.csdn.net/asongnic/article/details/4631735

下面这段代码是正确的:

#include<iostream>using namespace std;//可以在类的声明中对静态常量整型的数据成员进行初始化class myclass{public:    static const int i=20;};int main(){    cout<<myclass::i<<endl;    return 0;}

下面这段代码是错误的: 因为const成员只能初始化一次

#include<iostream>using namespace std;//可以在类的声明中对常量的类变量进行赋值class myclass{public:    static const int i=20;};const int myclass::i = 10;int main(){    cout<<myclass::i<<endl;    return 0;}

下面这段代码也是错误的:因为“只有静态常量整型数据成员才可以在类中初始化”

#include<iostream>using namespace std;//可以在类的声明中对常量的类变量进行赋值class myclass{public:    static  int i=20;}; int myclass::i = 10;int main(){    cout<<myclass::i<<endl;    return 0;}
0 0