C++类中static成员使用

  • Post author:
  • Post category:其他


    在C++中,static成员属于整个类而不是某个对象。不管类创建了多少对象,static成员只存储一份供所有对象使用。
    在使用static成员时,对于它的声明、初始化和使用经常感到困惑,在此结合例子说明,希望能加深读者对于static成员的理解。
    类中static成员有两种,一是static成员变量,一种是static成员函数。首先,先分析一下static成员变量。


第一个例子:static、static const、const和枚举的初始化

 
 
 
  1. class classA
  2. {
  3. const int ciNum;
  4. enum{ eNum=10}; //枚举在类声明时初始化
  5. int arr[eNum];
  6. public:
  7. classA():ciNum(10){} //const变量只能在构造函数初始化列表中初始化
  8. static int siNum;
  9. static const int sciNum=10; //static const可在类声明时初始化
  10. static const int sciNumOut;
  11. };
  12. int classA::siNum=10; //static变量必须在类外面初始化,但不需要加static修饰符
  13. const int classA::sciNumOut=10; //static const可在类外面初始化,不加static,但要加cosnt
  14. int main()
  15. {
  16. cout<<classA::siNum<<endl;
  17. cout<<classA::sciNum<<endl;
  18. cout<<classA::sciNumOut<<endl;
  19. return 0;
  20. }

编译通过



结论1:枚举在类声明时初始化;static const可在类声明中初始化,也可在类外面初始化;const和引用在构造函数初始化列表中初始化;static成员变量只能在类外面初始化


第二个例子:static成员变量的引用

 
 
 
  1. class classA
  2. {



版权声明:本文为u010991048原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。