- 类的静态数据成员:
对于非 const 的类静态成员,只能在类的实现文件中初始化。
const 类静态成员,可以在类内设置初始值,也可以在类的实现文件中设置初始值。(但是不能同时在这两个地方初始化,只能初始化 1 次)
- 静态成员函数:
可以直接通过类来访问,也可以通过对象来访问
在类的静态成员函数中,不能访问普通数据成员和普通成员函数,(即不能直接访问this指针和对象的数据成员,只能访问类的数据成员)
#include <iostream>
using namespace std;
class Student
{
public:
Student()
{
count++;
}
~Student()
{
count--;
}
int getCount()
{
return count;
}
static int getCount1() // 静态成员函数
{
return count;
}
private:
static int count; // 静态数据成员
static const int num = 5;
};
//初始化类的静态数据成员
int Student::count = 0;
void test()
{
// 类的静态成员函数可以直接通过类来访问,也可以通过对象来访问
cout << Student::getCount1() << endl;
}
int main()
{
Student s1;
cout << s1.getCount() << endl;
test();
return 0;
}