1.类的静态成员
在C++中可以定义静态成员变量和静态成员函数
静态成员属于整个类所有,不需要依赖任何对象
可以通过类名直接访问public静态成员
可以通过对象名访问public静态成员
静态成员函数可以直接访问静态成员变量
2.静态成员变量的定义
在定义时直接通过static关键字修饰
静态成员变量不依赖于任何对象,需要在类外单独分配空间
语法规则:Type ClassName::VarName;
3.静态成员函数的定义
在定义时直接通过static关键字修饰
其余部分与普通成员函数定义相同
4.从命名空间的角度
类的静态成员只是类这个命名空间中的全局变量和全局函数
不同之处只是,类可以对静态成员进行访问权限的限制,而命名空间不行
从面向对象的角度
类的静态成员属于类概念本身
类的所有对象共享相同的静态成员
例:
class Test
{
private:
static int cI;
public:
static int GetI()
{
return cI;
}
static void SetI(int i)
{
cI = i;
}
void print()
{
printf("cI = %d\n", cI);
}
};
int Test::cI = 0;
int main()
{
Test::SetI(5);
printf("Test::cI = %d\n", Test::GetI());
}
5.静态成员函数与普通成员函数的区别
静态成员函数不包含指向具体对象的指针
普通成员函数包含一个指向具体对象的指针,普通成员函数都隐式包含一个指向当前对象的this指针。