c++ - 如何找到派生类的直接父类

标签 c++

假设我有一个基类B,派生类D,派生派生类DD。 如何获取当前对象的直接父级实例?

例如

DD dd;
if (condition )
  dd->myfunction();
else
  d = getcurrentparent(); // this should give the current parent, here D d;

编辑:

好的,我正在添加我的场景。

它就像一个菜单。每个菜单都是不同的类别。

主菜单-基类 子菜单 - 派生类 子子菜单 - 派生的派生类。

现在当我在 sub 子菜单中遍历时,我需要知道当前 obj 的直接父级(比如从 sub 子菜单返回到子菜单)

最佳答案

如果你有 DD dd;,你总是可以通过分配给一个引用来获得对它的任何基类的引用:

DD dd;
D& d = dd;

虽然我不确定您为什么要这样做,因为派生对象可以做基础对象可以做的所有事情(甚至更多)。

关于c++ - 如何找到派生类的直接父类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13175303/

相关文章:

c++ - (C++) Const-Reference 修改了吗?

c++ - 为什么两个指针值不相同?

c++ - 更通用的访问者模式

c++ - 如果我的容器介于两个现有值之间,那么捏造迭代器类别是否合理?

c++ - 为什么 unique_ptr 会重载 reset(pointer p = pointer()) 和 reset(nullptr_t)?

c++ - 派生类的复制构造函数 (C++) 的初始化列表中的基类

c++ - 将图像从 C++ 更新到 QML

c++ - 词法分析 gawk 代码时区分除法与正则表达式

c++ - 单一生产者、单一消费者环形缓冲区的最小限制内存排序?

c++ - 如何避免 const 和非常量对象的运算符或方法代码重复?