对于非const的类静态成员,只能在类的实现文件中初始化,如下示例代码。 Human.h
class Human { public: ...... static int getCount(); private: string name = "Unknown"; int age = 28; ...... // 类的静态成员 static int count; };Human.cpp
#include "Human.h" // 初始化类的静态成员 int Human::count = 0; ...... // 类的普通成员函数,可以直接访问静态成员(可读可写) int Human::getCount() { return count; }const类静态成员,可以在类内设置初始值,也可以在类的实现文件中设置初始值。(但是不要同时在这两个地方初始化,只能初始化1次)。 注意: 类中所有的成员函数,都可以访问静态数据成员。 类不能直接访问普通的静态数据成员(Human::count 非法)。
类的静态方法:
可以直接通过类来访问【更常用】,也可以通过对象(实例)来访问。在类的静态方法中,不能访问普通数据成员和普通成员函数(对象的数据成员和成员函数)注意:
对象可以直接访问静态成员函数
类可以直接访问静态成员函数(Human::getCount())
在类的静态成员函数(类的静态方法)内部,不能直接访问this指针和对象的数据成员!因为this指针是属于实例对象。
在类的静态成员函数(类的静态方法)内部,只能访问类的数据成员(即静态数据成员)。