我正在尝试将游戏从Visual Studio移植到Xcode,该游戏完全是用C++编写的,因此我在动态转换方面遇到了一些麻烦,这在Visual Studio中运行时从未遇到过。我想知道这是编译器问题,还是Mac环境中不支持某些功能,将不胜感激。这是我在xcode中运行的代码的简化版本,在执行dynamic_cast时会崩溃

class base {
public:
 int dm;
 virtual void vm(){}
 base(){}
};

class specific : public base {
public:
virtual void vm(){dm++;}
specific (){}
};

specific* sp = new specific();
base* b = (base*) sp;
specific * s = dynamic_cast< specific * >( b );

最佳答案

您可以尝试设置“启用运行时类型” = YES
构 build 置> Apple LLVM 5.0-语言-C++
在您的xcode项目中。

希望对您有所帮助。

10-02 08:33