1 静态数据成员 2 1,sizeof 运算符不会计算静态成员。 3 4 2,对静态成员数据初始化的顺序为它们在类体外声明的顺序。 5 6 3,静态数据成员被类的所有对象所共享,包括该类的派生类对象。 7 8 4,静态成员数据也可以分为公有的、私有的和受保护的静态成员。 9 对公有静态成员,即可以通过类的对象进行访问,也可以通过类名直接访问。 10 私有的和保护的静态成员数据则只能被该类的公有成员函数访问。 11 12 5,在创建任何对象之前,类的静态成员数据已经存在并可以引用。 13 14 6,静态数据成员的类型可以是所属类的类型,非静态数据成员则不可以。 15 class Student{ 16 public: 17 static Student stu1; //静态数据成员,属于整个类,内存只有一份 18 Student stu2; //error 19 Student *pstu; //指针 20 Student &rstu; //引用 21 }; 22 Student::stu1::stu1::stu1::...::stu1等价于Student::stu1。 23 静态数据成员是自定义数据类型时的初始化 24 class A{ 25 public: 26 A(int); 27 }; 28 class B{ 29 private: 30 static A a; 31 }; 32 A B::a(2); 33 34 35 静态成员函数 36 1,静态数据成员和静态成员函数都属于整个类,而不是某个具体对象。在程序开始运行时就为静态成员数据分配存储空间。 37 所以,对静态成员函数的引用不需要对象名(需引用类名)。 38 class Student{ 39 public: 40 static func(); 41 }; 42 43 int main(){ 44 Student::func(); //here! 45 return 0; 46 }
时间: 2024-10-27 02:39:29