1.定义
声明为static的类成员称为类的静态成员
- 用static修饰的成员变量,称之为静态成员变量
- 用static修饰的成员函数,称之为静态成员函数
静态的成员变量一定要在类外进行初始化
看段代码: 实现一个类,计算中程序中创建出了多少个类对象
class A
{
public:
A() {
++_scount;}
A(const A& t) {
++_scount;}
static int GetACount() {
return _scount;}
private:
static int _scount;
};
int A::_count = 0;
void TestA()
{
cout<<A::GetACount()<<endl;
A a1, a2;
A a3(a1);
cout<<A::GetACount()<<endl;
}
2.静态成员变量
1.静态成员变量即在声明
成员变量的时候加上static
关键字
2.此时,该静态成员变量为所有的类的对象所共享,任意的一个对象对其的修改都作用于其他对象
3.静态成员变量必须在类外定义,定义时不添加static关键字
4.类静态成员即可用类名::静态成员或者对象.静态成员来访问
3.静态成员函数
1.静态成员变量即在声明
成员函数的时候加上static
关键字
2.静态成员函数没有隐藏的this指针,不能访问非静态成员(成员函数+成员变量,因为访问需要用到this指针)
3.静态成员函数可以被非静态成员函数调用,也能在类外用类名::函数名
访问