static

来源:互联网 发布:阿里云开通码 编辑:程序博客网 时间:2024/06/07 02:39

static能够修饰成员变量和成员函数。对象的空间大小不包含静态成员变量的大小。C++在物理中将函数和数据分开,对象的大小就是数据的大小(若没有数据,则对象的大小为1,不为0),所有函数是共用的,通过this指针区别,从而进行不同对象调用不同的函数。

但是对象的大小不包含静态成员数据的大小,而静态成员函数中也不能使用this指针。所有对象共用数据和函数。

1.当static修饰成员变量的时候,可在类外部进行初始化。

class A

{

private:

static int a;

}

int A::a = 10;

2.当static修饰成员函数时,他用于管理静态成员变量。不能访问非static的成员数据和成员函数。

static修饰的成员变量和成员函数属于类,但是对象可以使用。


注意:如果有一个成员变量有const和static修饰,那么必须在类的声明处进行初始化。例如:

class A

{

private:

const static int a = 10;

}

0 0