C ++喜欢vs C喜欢演员吗?

C++ like vs C like casts?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Regular cast vs. static_cast vs. dynamic_cast

自从我开始编程以来,我一直在使用类似C的类型转换:

1
2
class* initializedClassInstance;
void* test = (void*) initializedClassInstance;

我已经告诉过某处,我应该习惯C++的CSTASE(StasyType,DigialSkyCas.…)。

有没有理由喜欢一个胜过另一个(C++超过C风格)?静态铸造和动态铸造有区别,对吗?但这是什么?

谢谢!


C型铸造是不安全的。

C++风格的转换以另一种方式运行。如果无法进行强制转换,static_cast将给您一个编译错误。如果要强制转换指针,则失败时的dynamic_cast将强制转换为空,否则将引发异常。

因此,这允许您编写一个更安全的代码。


是的,有。它给你支票。例如,static_cast提供编译时检查,dynamic_cast提供运行时检查。

你可以在这里了解更多关于casts的信息。