静态成员变量
型如:
static <变量类型> <变量名>
说明:
1.静态成员变量为所有类共用一个(无论定义了多少个对象,静态成员变量的空间只有一个)
2.静态成员变量只能在类外全局变量处进行初始化。否则编译出错。
3.静态成员变量早在实例化对象前就已经分配完空间了。
静态成员函数:
型如:
static <返回值类型> <函数名>()
说明:
1.静态成员函数所有对象共有
2.作用就是为了调用静态成员变量。C++中建议只在静态成员函数中调用静态成员变量,不要调用普通成员变量
3.静态成员函数不能直接调用类内的普通成员函数,因为没有this指针。可以用过对象访问。
4.静态成员函数可以通过类名直接访问。
示例代码:
#include<iostream>
using namespace std;
class Person
{
private:
static int age;
string name;
public:
Person(string x):name(x){}
static void show(Person &);
~Person(){}
};
int Person::age=25;//静态成员变量需要在类外全局处初始化
void Person::show(Person &f)
{
cout<<"age: "<<age<<endl;
//cout<<"name: "<<name<endl; //错误,常成员函数没有this指针,不能直接调用普通成员变量
cout<<"name "<<f.name<<endl;
}
int main()
{
Person a=Person("AAAAA");
Person b=Person("BBBBB");
b.show(b);
a.show(a);
}