相关疑难解决方法(0)

以编程方式获取派生类的名称

我试图做类似的事情:

class Base {
public:
   Base() {
      cout << typeid(*this).name() << endl;
   }
   ...
};

class Derived : public Base { ... }
class MoreDerived : public Derived { ... }

Derived d;
MoreDerived m;
Run Code Online (Sandbox Code Playgroud)

问题是,Base当我需要看到Derived和时,我总是被打印到屏幕上MoreDerived.有没有办法让typeid以派生类的方式工作?或者还有另一种方法typeid吗?

注意:我正在为已经编码的套件添加功能,所以我不想在基类中添加虚方法,派生类本身会返回此值.此外,不担心运行时开销,这将是调试编译开关的一部分.

c++ typeid

16
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

typeid ×1