【C++】浅谈类的static成员

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.静态成员函数可以被非静态成员函数调用,也能在类外用类名::函数名访问

猜你喜欢

转载自blog.csdn.net/m0_52640673/article/details/123219648
今日推荐