为什么父类变量是隐藏的,如果子类具有相同名称的变量?为什么不避免

时间:2016-05-03 17:36:31

标签: c++ inheritance

我有两个课程如下:

class parent
{
public:
    int a;
};

class child: public parent
{
public:
    int a;
};

当这种继承发生时,子类隐藏了父类的变量a,但是父类仍然可以使用范围解析运算符a来访问parent::a。为什么parent::a无法避免?

有人可以告诉我为什么C ++在隐藏时不允许parent::a被“避免”。我认为在子类中保留parent::a会浪费内存。

1 个答案:

答案 0 :(得分:3)

一般规则是,您可以在内部作用域中声明相同的名称,并隐藏任何其他作用域中的任何同名项。

课程没有特殊例外。