c++类型转换
c语言中,如果要操作两个不同的内置类型,需要用到隐式类型转换和强制类型转换,如果是自定义类型和内置类型,或者自定义类型和自定义类型,则无法操作。
所以c语言的类型转换存在一些不方便和不易理解的地方,c++引入了一套更强大的类型转换机制
内置类型和内置类型
static_cast<类型>(变量) 用于代替隐式类型转换,如size_t 转int
reinterpret_cast<类型>(变量) 用于代替强制类型转换,如int 转 int*
const_cast<类型>(变量) 用于将const类型的指针转换为普通指针,如const int* 转 int*
dynamic_cast<类型>(变量) 继承和多态处使用,在多态函数中传入父类引用或指针对象,是指转化为父类,如果传入对象为父类,返回子类对象,且指向空,如果为子类对象,返回自己
自定义类型和内置类型
operator 内置类型() {
}
自定义类型和自定义类型
不能直接去转,但是可以用构造函数间接进行转换