|
|
发表于 2006-2-8 11:06:36
|
显示全部楼层
static_cast<T>(x)相当于老方法(T)x。两者是等价的。但因为在C++中对const的处理不同,static_cast<T>(x)无法去掉const,即不能从const T转成T。
dynamic_cast<T>(x)引入了运行时的类型检查,属于RTTI应用。在运行期要检查类型转换是否合法,若不合法会抛出异常bad_cast。多用于继承类指针类型向基类指针类型的类型转换。但相比static_cast<T>(x)引入了运行时的开销。
reinterpret_cast<T>(x)是implementation defined,因此无法确定它的行为……
const_cast<T>(x)便是为了从const T到T的类型转换。 |
|