static - const -成员变量


1.静态成员变量
 在类内部声明,在外部定义并初始化。由于类外部通常都是全局区,如果未初始化存于BSS段,由编译器编译阶段全部初始化为0
 class A
 {
      static int m_a;
 };
 int A::m_a = 10;

 且static成员依然受防控属性控制,此处默认private则只有在全局初始化时可以访问,在其他A外无法访问。
2.常成员变量
 在类内部定义,并且只能在构造函数的初始化表中进行初始化。
 
class A
 {
      A(int a):m_a(a){}
      const int m_a;
 };


 非常成员变量要想在常成员函数中进行修改,需要使用mutable修饰。
3.常静态成员变量
 只能在类内部定义时初始化。
class A
 {
     static const int m_a = 20;
 };

猜你喜欢

转载自blog.csdn.net/u013566722/article/details/79724192