假设我有一个基类 A
和来自 A
的三个派生类,分别称为类 x
、y
, z
。现在,类 x
有一个函数成员 f
,我想通过多态性从类 A
指针访问它。
我知道我还必须在类 A
中定义相应的虚函数,否则,我会得到类似 "class A has no member named f"
的错误>。但是,如果我在A
中定义虚函数,我还需要在y
和z
中定义f
,否则,将引发一个错误,指出 “y 和 z 是抽象类类型”
。但有时,f
就像一个仅与类 x
相关的特征函数,在类 y
和 z< 中定义是没有意义的
,虽然我可以在y
和z
中不给出任何内容来写它。
我的问题是上面的场景,我该怎么办?
最佳答案
据我所知,您有 3 个选择:
- 重新设计,因为您的对象不正确。
- 实现一个断言然后抛出的基本函数
- 测试 dynamic_cast<> 的结果 - 如果返回 null,则失败。
关于c++ - 当有多个派生类时,如何使用基类指针访问派生类的函数成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40244332/