static——静态变量静态函数

网友投稿 1161 2022-05-30

1,非类成员的静态变量

不是类成员的静态变量有两种:函数中的静态局部变量和函数外的静态全局变量。参考C语言存储类别、存储区一文,局部变量加static是函数结束之后,变量还在,全局变量加static是把作用域限制在本文件中。

2,作为类成员的静态变量

类成员变量加static,就可以用类直接使用成员,不需要对象。

需要注意的是,静态成员只是一个声明,还需要在类外面定义这个成员。

class A {

public:

static int x;

};

int A::x = 10;

class B :public A {

};

class C :public A {

};

int main()

{

B::x = 3;

cout << C::x;

return 0;

}

输出:3

表明所有的子类都和父类共享同一个静态成员。

3,非类成员的静态函数

类似于全局变量,加static是把作用域限制在本文件中,只有文件所在的编译单位内可以使用这个函数。

static——静态变量和静态函数

4,作为类成员的静态函数

非静态的类成员函数,通过this指针确定访问哪个对象实例的数据。

类成员函数加static之后,没有this指针,调用时不会传递对象的引用,所以不能访问非静态的成员。

C++

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:11.1.1 创建线程
下一篇:IPv6 — IPv4v6 综合组网技术
相关文章