我已经很长时间没有使用 C++ 了,这个问题可能很愚蠢,但我真的可以使用一些帮助。
如果我的基类有一个私有数据成员并且我的派生类是公开派生的,则基类的私有成员不会被继承。但是,它们仍然可以通过继承的公共函数访问。例如:
class B{
int a,b;
public:
void SetA(int);
int GetA();
};
class D:public B{
public:
SetAAttribute(int x)
{ SetA(x); }
}
现在,我的问题如下:从技术上讲,派生类对象上没有定义“a”属性。用外行的话来说,我基本上是在一个实体上设置一个属性,而这些属性甚至根本不存在。想象这样一个概念似乎不直观。我理解正确吗?
任何额外的解释或更正将不胜感激。