文章目录
static修饰成员变量
class Test
{
public:
Test(int a,int b):ma(a)mb(b)
{}
private:
int ma;
int mb;
static int mc;
};
int Test::mc=10;
普通成员变量各对象独享,因此在构造函数的初始化列表中就可直接初始化;
而加了static关键字的成员变量,不属于对象私有,属于整个类,也就是所有对象共享,所以必须要进行初始化,但是却不能由构造函数来初始化,此时就要在类外进行初始化。
总结:
- 不属于对象私有,属于整个类。
- 必须进行初始化,并且要在类外进行初始化。
- 不依赖对象访问。
static修饰成员方法
class Test
{
public:
Test(int a,int b):ma(a)mb(b)
{}
void show()
{
cout<<ma<<endl;
cout<<mb<<endl;
}
static void print()
{
cout<<mc<<endl;
}
private:
int ma;
int mb