我真的(真的)很长时间没有使用 C++,这个问题可能很愚蠢,但我真的需要一些帮助。
如果我的基类有一个私有(private)数据成员,而我的派生类是公开派生的,则基类的私有(private)成员不会被继承。但是,仍然可以通过继承的公共(public)函数访问它们。例如:
class B{
int a,b;
public:
void SetA(int);
int GetA();
};
class D:public B{
public:
SetAAttribute(int x)
{ SetA(x); }
}
现在,我的问题如下: 从技术上讲,派生类对象没有定义“a”属性。通俗地说,当属性根本不存在时,我基本上是在实体上设置属性。想象这样一个概念似乎不符合直觉。我理解正确吗?
任何额外的解释或更正将不胜感激。
最佳答案
并不是该属性不再存在,只是它对您隐藏了。基类方法仍然可以访问基类成员,因为它们没有相互隐藏。
关于c++ - 在 C++ 中访问基类私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10393040/