如何获取派生类的实例

时间:2015-08-10 15:07:04

标签: c++ polymorphism dynamic-cast

我有两个继承自基类的类,在这个基类中,我想检索已经创建的实例。

C* A::getCinstance()
{
    return dynamic_cast<C*>(this);
}

我有这个错误

erreur: cannot dynamic_cast ‘this’ (of type ‘class A* const’) to type ‘struct C*’ (target is not pointer or reference to complete type)

我正在研究,但我没有在互联网上找到任何东西。

我提前感谢你,抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

dynamic_cast的典型用法是从基类实例转换为派生类。例如,当类C将类A作为基类时。 (但是,还有其他情况可以使用dynamic_cast,但我认为此时讨论不会对您有所帮助。)此编译器错误告诉您没有dynamic_cast的情况可能用过了。事实上,错误说&#34;'struct C *'(目标不是指针或对完整类型的引用)&#34;,这意味着它甚至不知道C是什么。如需更多帮助,您需要提供更完整的示例。