static_cast
概述:用于静态转换。
特点:
- 不能用于无关类型的转换,有风险,可能得到一些无意义的值,如int 转double。void 指针和具体类型指针之间的转换有极大风险。
- 编译期转换。
- 类的向下转换需要程序员保证安全性。
#include <iostream>
int main() {
int m = 100;
long n = static_cast<long>(m);
std::cout << n;
}
const_cast
概述:const_cast 就是用来将 const/volatile 类型转换为非 const/volatile 类型。
特点:
- 指针转换仍然指向原来的对象。
#include <iostream>
int main() {
const int n = 100;
int