目录
标准转换函数
reinterpret_cast
reinterpret_cast<new type> (expression)
将一个类型的指针转换为另一个类型的指针,也允许从一个指针转换为整数类型;
const_cast
const_cast< new type>(expression)
const指针与普通指针间的相互转换,注意:不能将非常量指针变量转换为普通变量
static_cast
static_cast<new type>(expression)
主要用于基本类型间的相互转换,和具有继承关系间的类型转换
dynamic_cast
dynamic_cast<newtype>(expression)
只有类中含有虚函数才能用dynamic_cast;仅能在继承类对象间转换
dynamic_cast具有类型检查的功能,比static_cast更安全
自定义转换函数
成员转换函数
class A{
public:
A(int x): data(x){ }
operator int() const{
return data;
}
private:
int data;
};
隐式转换
示例:
class Arr{
public:
Arr(int x):size(x){}
private:
int size;
};
Arr a = 123;