More Effective C++笔记
1. 尽量使用C++风格的类型转换
C++四个类型转换操作
1.1 static_cast
1.2 const_cast
const_cast可以改变一些东西的constness或者volatileness
1.3 dynamic_cast
dynamic_cast安全的向下转换
#include <iostream>
using namespace std;
class Base{};
class Derived : public Base{};
int main()
{
Base *b = new Derived;
//error : 运行时 dynamic_cast 的操作数必须包含多态类类型
Derived *d= dynamic_cast<Derived *>(b);
return 0;
}
1.4 reinterpret_casts
传统类型转换代替