一、类的 static 数据成员 1. 类的 static 数据成员必须在类外部进行初始化。 class Test ... ... private: static int ival; }; int Test::ival=0; //必须初始化,否则编译出错! 2. static 数据成员的类型可以是该成员所属的类类型。而非static数据成员被限定声明为其自身类对象的指针或引用。 class Test ... ... private: static Test stobj; //正确。static数据成员stobj的类型可以为Test类型 }; 3. static数据成员可以用作默认实参。而非static数据成员不能用作默认实参,因为它的值不能独立于所属对象而使用。 class Test ... ... private: static int total; }; 二、类的 static 成员函数 1. 静态成员函数不允许使用修饰符(如const)。因为static成员不是任何对象的组成部分,将成员函数声明为const就是承诺不会修改该函数所属的对象。 class Test Test() { ++m_total; } private: static int m_total; }; int Test::m_total=0; 2. 类的 static 成员函数不能被声明为虚函数 class Test ... ... private: ... ... }; 3. 类的 static 成员函数不允许访问非 static 成员(数据成员或成员函数) class Test ... ... private: int m_num; }; int Test::m_total=0; int Test::GetTotalNum() GetCurNum(); //错误!GetCurNum()是非static成员函数 } |
关于static修饰符
最新推荐文章于 2022-04-26 22:48:33 发布
[C++]关于static修饰符
2010年07月01日 星期四 21:58