1 静态成员的定义
1 静态变量
c++在类里面进行的仅是引用性声明,不会为之分配内存,要求必须单独对静态数据成员进行定义性的声明。形式为:
类型 类名::静态数据成员名;
此时的定义需要再加关键字static,并且可以在定义时初始化。
c++要求类中成员变量不可以直接初始化,可以采用定义函数方法时后挂变量方式初始化。
这与Java不同。
2 静态函数
定义方式与静态变量同。函数的定义可以在类内也可以在类外。
class A { public: A(int y) { a=y; cout<<a+x<<endl; } //static int x; static void B(int z) { x=z; cout<<a<<"hehe"<<endl; } private: int a; static int x; }; int A::x=1; void A::B(int z); int main() { //A::x=2; A a1(2); a1.B(3); return 0; }
2 访问限制说明
静态函数可以直接访问静态变量,但不可直接访问非静态成员,若要访问非静态成员,则必须借助于对象名或者指向对象的指针。
非静态函数可以直接访问静态变量和非静态变量。
这个特点与Java同。