C++:隐藏基本静态成员
Posted
技术标签:
【中文标题】C++:隐藏基本静态成员【英文标题】:C++: Hide base static member 【发布时间】:2009-09-07 01:56:45 【问题描述】:在 C++ 中,是否可以让子类“隐藏”基类的静态字段和方法? (即 A 有一个名为 ABC 的 int 类型字段,B:A 和 B 有一个名为 ABC 的 int 类型字段)
【问题讨论】:
【参考方案1】:#include <iostream>
using namespace std;
class A
public:
static int a;
;
class B: public A
public:
static int a; // hide base member
;
int A::a;
int B::a;
int main()
A::a=10;
B::a=20;
B k;
cout << "\n" << B::a << k.a;
return 0;
【讨论】:
是的,它将被隐藏(但如果客户明确指定基类名称,例如A::a
,客户仍然可以访问基类的成员)。
或者B::A::a
(是一样的)【参考方案2】:
也许:
class B : private A
...
;
这将隐藏所有内容,而不仅仅是静态数据。
【讨论】:
缺少结束分号。 ;D【参考方案3】:要私下继承吗?
class B : private A
// ...
;
【讨论】:
以上是关于C++:隐藏基本静态成员的主要内容,如果未能解决你的问题,请参考以下文章