c++ - 在 C++ 中访问基类私有(private)成员

标签 c++ class inheritance

我真的(真的)很长时间没有使用 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/

相关文章:

javascript - 从继承类访问父级 "this"变量

python - 尝试在 Python 3 中将函数作为整数返回

c# - 继承构造函数问题

c++/qt - 没有这样的插槽 - 继承

c++ 有趣的语法,用于在 std::cout 中打印新行

javascript - 单击时交换类别

c# - 在 .Net Hierarchy 中隐藏方法

Java继承问题-如何更改super中所需的每个子类的属性

C++ 多人 UDP 套接字 API

c++ - NS_ERROR_XPC_GS_RETURNED_FAILURE 错误码