static——静态变量和静态函数
【摘要】
1,非类成员的静态变量
不是类成员的静态变量有两种:函数中的静态局部变量和函数外的静态全局变量。参考C语言存储类别、存储区一文,局部变量加static是函数结束之后,变量还在,全局变量加static是把作用域限制在本文件中。
2,作为类成员的静态变量
类成员变量加static,就可以用类直接使用成员,不需要对象。
需要注意的是,...
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是把作用域限制在本文件中,只有文件所在的编译单位内可以使用这个函数。
4,作为类成员的静态函数
非静态的类成员函数,通过this指针确定访问哪个对象实例的数据。
类成员函数加static之后,没有this指针,调用时不会传递对象的引用,所以不能访问非静态的成员。
文章来源: blog.csdn.net,作者:csuzhucong,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/nameofcsdn/article/details/104502147
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)