关于静态成员变量在类继承中的一个误区
来源:互联网 发布:java swing 学习 编辑:程序博客网 时间:2024/04/27 23:58
以前一直认为:静态成员变量是该类共有的,那么其派生类就一定要开辟一段新的内存来该存储派生类从基类中继承的静态成员变量。
正确的说法应该是:基类和其派生类 共享该基类的静态成员变量内存!
可以看下面的代码:
#include<iostream>
class base
{
int mx;
public:
static int xxx;
static void fun(int x)
{
xxx=x;
}
base(int x):mx(x){}
friend std::ostream& operator<<(std::ostream& ,base&);
};
int base::xxx=0;
class test:public base
{
public:
test(int x):base(x){}
};
std::ostream& operator<<(std::ostream& os,base& s)
{
os<<s.mx;
return os;
}
int main()
{
test x(321);
base y(123);
std::cout<<test::xxx<<std::endl;
base::fun(888);
std::cout<<base::xxx<<std::endl;
std::cout<<test::xxx<<std::endl;
test::fun(999);
std::cout<<base::xxx<<std::endl;
std::cout<<test::xxx<<std::endl;
std::cout<<x<<std::endl;
std::cout<<y<<std::endl;
return 0;
}
输出:
0
888
888
999
999
321
123
- 关于静态成员变量在类继承中的一个误区
- 关于静态成员变量在类继承中的一个误区
- 关于C++中的模版类中的静态成员变量
- 如何初始化一个类中的静态成员变量
- 关于C++中的静态成员变量
- C++ 静态成员变量 在类中的实现
- 关于java中的局部变量、成员变量、静态变量
- 静态成员变量和静态成员函数在C++类中的作用
- c++类中的静态成员函数和静态成员变量
- 类中的静态成员变量和静态成员函数
- 类中的静态成员函数访问非静态成员变量
- Java中关于 静态成员变量 在JVM中的存储位置
- 一个关于继承关系中静态快、成员变量、构造体代码的执行顺序的Java代码
- 关于类的静态成员变量
- 关于JAVA继承类的静态变量、成员变量、父子类构造方法调用顺序的探讨
- 关于JAVA继承类的静态变量、成员变量、父子类构造方法调用顺序的研究
- 关于静态成员变量与方法的一个实例
- 继承中的静态成员函数
- C++ Primer Plus 6.2
- C++ volatile 关键字
- 心情不好
- 嘿嘿。。
- NO.1
- 关于静态成员变量在类继承中的一个误区
- 开启 php curl_init 的问题
- poj1651 矩阵相乘DP
- Linux内核的同步机制
- NavigableMap与NavigableSet
- linux的文件系统
- Java 字符串匹配和替换字符串
- rollup与cube函数
- 各种windows采用windbg进行内核调试的设置