static 作用与意义:静态函数、静态变量
1.实现数据共享,例如 想知道当前存在多少个实例对象
2.考虑安全
static 使用:
静态变量:
1.所有对象共享一份数据
2.在类中声明,类外初始化
静态函数:
1.静态函数只能访问静态变量
2.所有对象共享同一个函数
#include <iostream>
#include <string>
using namespace std;
class Acc
{
private:
string name {"acc"};
static int num_acc;
public:
static int pr();
Acc(string name="acc");
~Acc();
};
int Acc::num_acc{0};
int Acc::pr(){return num_acc;}
Acc::Acc(string name)
: name{name}{
num_acc++;
}
Acc::~Acc(){
cout << "实例对象计数" << num_acc << endl;
num_acc--;
}
int main()
{
cout << Acc::pr() << endl;
Acc a1{"a1"};
cout << a1.pr() << endl;
Acc a2{"a2"};
cout << a2.pr() << endl;
return 0;
}