gpt4 book ai didi

C++:返回子类指针

转载 作者:行者123 更新时间:2023-11-30 01:30:35 25 4
gpt4 key购买 nike

假设我有一个抽象基类 A,并从中派生出 B。

使用以下代码:

A* myInst = (A*) new B;

A* GetA() { return myInst; }
B* GetB() { return (B*) myInst; }

第一个函数编译,第二个不编译。错误:错误 C2143:语法错误:缺少“;”在“*”之前

  • 为什么我不能返回指向 A 的子类的指针?

如果我用 return NULL;!

替换函数的内容,也会发生错误

最佳答案

问题很可能是编译器不知道AB 是什么。最有可能缺少包含。

但除此之外,永远不要将 C 风格的类型转换与类一起使用。甚至更好。

使用static_cast(如果您确定转换正常)或dynamic_cast(如果您需要检查)。

关于C++:返回子类指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4257760/

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