如何从子类访问父类的数据成员,当两个父母和孩子具有相同的名称为DAT成员(How to access

2019-07-30 11:15发布

我的情况如下::

class Parent
{
public:
int x;
}

class Child:public Parent
{
int x; // Same name as Parent's "x".

void Func()
{
   this.x = Parent::x;  // HOW should I access Parents "x".  
}
}

这里如何从儿童的成员函数访问家长的“X”。

Answer 1:

几乎得到了它:

this->x = Parent::x;

this是一个指针。



Answer 2:

通过作用域解析运算符访问它的工作:

x = Parent::x;

不过,我会在你想要做这什么情况下质疑。 您的示例使用公有继承哪些型号的“是”的关系。 所以,如果你有符合此标准,但有不同的价值观和/或不同的含义相同成员的对象,然后这个“是”的关系是一种误导。 可能有一些边缘的情况下这哪里是合适的,但我想指出,他们肯定是例外的规则。 当你发现自己这样做,觉得漫长而艰难的原因



Answer 3:

这是只有Luchian格里戈里和阿努比斯先生提供的解决方案进行了简要的解释,所以如果你是好奇,“这是如何工作”,你应该进一步阅读。

C ++提供了一个所谓的“范围操作符”( :: ),这是完全适合您的任务。

在提供了更多的细节该页面 。 你可以这样操作人员类名(合并Parent )以获得父母的x变量。



文章来源: How to access parent class's data member from child class, when both parent and child have the same name for the dat member