答案是不安全的。
但如果C++使用得当,它将远比C更有类型安全性,相比于C,C++提供了一些新的机制保障类型安全:
(1)操作符new返回的指针类型严格与对象匹配,而不是void*;
(2)C中很多以void* 为参数的函数可以改写为C++模板函数,而模板是支持类型检查的;
(3)引入const关键字代替 #define constants,他是有类型、作用域的,而#define constants这是简单的文本替换;
(4)一些#define宏可被改写成为inline函数,结合函数的重载,可在类型安全的前提下支持多种类型,当然改写为模板也能保证类型安全;
(5)C++提供了dynamc_cast关键字,是的转换过程更加安全,因为dynamic_cast比static_cast涉及更多的类型检查;
但是C++ 也是不安全的,简单的说 它是支持强制类型转换的