多态实现


回忆氵独奏♪
2025-03-23 10:18:10 (16天前)


假设我有A类,B类继承A,C类也继承A. C类有方法F,而B类没有。

A级{
//有些东西
};

B级:公共A {
//有些……

2 条回复
  1. 0# 無口君 | 2019-08-31 10-32



    如果这确实是你想要坚持的设计,你首先需要有一个虚拟的基础(例如通过虚拟声明析构函数)

    A



    virtual ~A() = default;

    ,那么你可以简单地做:




    1. if(typeid(_a) == typeid(C)) {
      static_cast<C
      >(_a)->F();
      }

    2. </code>

登录 后才能参与评论