强制转换
三种强制转换:
- static_cast 可以用于两种相关指针类型之间的强制转换,eg void* 与 double*.
void* pv; int* pi = static_cast<int*>(pv);
- reinterpret_cast 可以在两个不相关的类型之间转换,例如 int double*.
Register* in = reinterpret_cast<Register*>(0Xff);
这里告诉编译器内存中的某个特定部分用作一个寄存器。
- const_cast 可以“抛弃常量修饰”。
void f(const Buffer* p) { Buffer*b = const_cast<Bugger*>(p); }要尽量避免类型转换。

浙公网安备 33010602011771号