【发布时间】:2009-09-07 01:56:45
【问题描述】:
在 C++ 中,是否可以让子类“隐藏”基类的静态字段和方法? (即 A 有一个名为 ABC 的 int 类型字段,B:A 和 B 有一个名为 ABC 的 int 类型字段)
【问题讨论】:
标签: c++ class oop static field
在 C++ 中,是否可以让子类“隐藏”基类的静态字段和方法? (即 A 有一个名为 ABC 的 int 类型字段,B:A 和 B 有一个名为 ABC 的 int 类型字段)
【问题讨论】:
标签: c++ class oop static field
#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(是一样的)
也许:
class B : private A
{
...
};
这将隐藏所有内容,而不仅仅是静态数据。
【讨论】:
要私下继承吗?
class B : private A {
// ...
};
【讨论】: