静态成员变量及函数
使用static关键字定义,需要注意静态变量不单独属于某一个对象,所有该类的对象都可以访问同一个静态变量,但是私有静态变量不能共享。成员函数一样。
class car
{
public:
static string m_name;//静态成员变量
//静态成员函数只能访问静态变量,因为静态成员函数所有对象共享,故调用时里面如果使用了非静态变量
//又因为静态成员函数不属于类对象本身,则编译器无法识别调用的是哪个对象的非静态变量
//更简单的说,当直接使用域作用符,如car::nameIs("BWM",1);里面包含非静态变量
//但是并不能知道调用的是谁的num变量,甚至这个类还没创建过对象,那怎么用
static void nameIs(string name)//static void nameIs(string name,int num)
{
m_name = name;
//m_num = num;
cout<<"The car's name is "<<name<<endl;
}
private:
static int m_num;
};
//静态变量使用前需要在类外初始化
string car::m_name =