面试官:C++中支持哪些类型转换?
二师兄:C++支持C风格的类型转换,并在C++11引入新的关键字规范了类型转换。
二师兄:C++11引入四种新的类型转换,分别是static_cast、dynamic_cast、const_cast、和reinterpret_cast。
二师兄:static_cast用途最广泛,除了后面三种类型转换外,其他的类型转换都能使用static_cast完成。
二师兄:dynamic_cast主要用于运行时的从父类指针向子类指针转换,如果转换不成功则返回nullptr。
二师兄:const_cast主要用于去除指针或引用类型的const属性。此操作可能会导致未定义的行为,所以需要慎用。[code]#include void function(const int& val){ int& v = const_cast(val); v = 42;}int main(int argc, char const *argv[]){ int val = 1024; function(val); std::cout
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |