gpt4 book ai didi

c++ - 从基类识别派生类

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:23 25 4
gpt4 key购买 nike

有什么方法可以检查两个实例是否是同一个派生类?像这样的东西:

Base *inst1 = new A();
Base *inst2 = new B();
Base *inst3 = new A();


bool b1 = (inst1->class== inst2->class); //<-- should evaluate to false
bool b1 = (inst2->class== inst3->class); //<-- should evaluate to true

显然我可以只向基类添加一个虚函数并实现每个派生类以返回一个唯一值。但是,我宁愿不必为派生类实现任何特定的东西,因为我正在制作一个基于派生自这个基类的 API。

最佳答案

typeid(*inst1) == typeid(*inst2)

假设 Base 至少有一个虚函数。否则,typeid 将无法获得正确的派生类型。

关于c++ - 从基类识别派生类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12679985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com