c++中的静态成员:
1.当我们在类中的成员变量前面加上static关键字时,这个变量就变成了静态变量;
2.无论你创建多少个对象,静态成员变量都只有一个副本
3.静态成员变量不能再类中直接初始化,必须使用::符号在外面初始化,且可以直接通过类名::访问到静态变量;
例:
class Person
{
public:
static int objectCount;//静态变量
Person()
{
cout << "这里是构造函数" << endl;
objectCount++;
}
};
int Person::objectCount = 0;//静态变量初始化,且不能在类中初始化
int main()
{
//创建两个静态变量
Person p1;
Person p2;
//通过类名直接访问静态变量
cout << "一共创建了" << Person::objectCount<<"个对象";
return 0;
}
c++中的静态成员函数:
1.当我们在函数前面加上static关键字时。这个函数就变成了静态函数
2.静态函数只能操作类中的静态成员变量,且没有this指针
例:
class Person //人这个类
{
public:
static int objectCount; //静态成员变量
Person()
{
cout << "这里是构造函数" << endl;
objectCount++;
}
static int getCount() //静态成员函数,只能操作静态成员变量
{
return objectCount;
}
};
int Person::objectCount = 0;//静态成员变量初始化
int main()
{
//创建两个类
Person p1;
Person p2;
cout << "创建了" << Person::getCount() << "个对象"<<endl;
return 0;
}