
C++
分享一些C++编程知识
有温度的程序员
10多年的C/C++开发经验
展开
-
C++ 中 reinterpret_cast 的作用
reinterpret_cast 用于进行各种不同类型的指针之间、不同类型的引用之间以及指针和能容纳指针的整数类型之间的转换。转换时,执行的是逐个比特复制的操作。 这种转换提供了很强的灵活性,但转换的安全性只能由程序员的细心来保证了。例如,程序员执意要把一个 int* 指针、函数指针或其他类型的指针转换成 string* 类型的指针也是可以的,至于以后用转换后的指针调用 string 类的成员函数引发错误,程序员也只能自行承担查找错误的烦琐工作:(C++ 标准不允许将函数指针...原创 2022-05-27 11:44:58 · 1337 阅读 · 0 评论 -
C++ 中 dynamic_cast 的作用
dynamic_cast是C++四个强制类型转换操作符中最特殊的一个,它支持运行时识别指针或引用。dynamic_cast 用于类继承层次间的指针或引用转换。主要还是用于执行“安全的向下转型(safe downcasting)”,也即是基类对象的指针或引用转换为同一继承层次的其他指针或引用。至于“向上转型”(即派生类指针或引用类型转换为其基类类型),本身就是安全的,尽管可以使用dynamic_cast进行转换,但这是没必要的, 普通的转换已经可以达到目的。“向下转型”的前提条件:被转换对象必须是原创 2022-05-27 11:41:42 · 2693 阅读 · 0 评论 -
C++ 中 const_cast 作用详解
const_cast是一种C++运算符,主要是用来去除复合类型中const和volatile属性(没有真正去除)。我们需要注意的是:变量本身的const属性是不能去除的,要想修改变量的值,一般是去除指针(或引用)的const属性,再进行间接修改。用法:const_cast<type>(expression)通过const_cast运算符,也只能将const type*转换为type*,将const type&转换为type&。也就是说源类型和目标类型除了const原创 2022-05-27 11:30:37 · 11336 阅读 · 0 评论