写给Java程序员的Scala入门教程
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是把作用域限制在本文件中,只有文件所在的编译单位内可以使用这个函数。
4,作为类成员的静态函数
非静态的类成员函数,通过this指针确定访问哪个对象实例的数据。
类成员函数加static之后,没有this指针,调用时不会传递对象的引用,所以不能访问非静态的成员。
C++
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。