首页 > 试题广场 >

简述一下 C++ 中的四种类型转换

[问答题]
简述一下 C++ 中的四种类型转换
static_cast没有动态类型检查,不安全;dynamic检查;const_cast去const 属性;reinterpret_cast 最不安全
发表于 2023-02-26 09:34:49 回复(0)
1. static_cast<>:静态类型转换:在编译期发挥作用,不会进行类型检查,其安全性需要程序员自己保证。常用于基本类型的转换。上行转换,也就是,派生类指针装换成基类指针是安全的,反之就不安全。 2. dynamic_cast<>:动态类型转换:作用时期是运行时期,具有类型检查的作用,所以主要用于类层次的上行和下行的转换。 3. reinterpret_cast<>:重解释转换: int num = 0x00636261;//用16进制表示32位int,0x61是字符'a'的ASCII码 int * pnum = &num; char * pstr = reinterpret_cast<char>(pnum); cout<<"pnum指针的值: "<<pnum><<endl>(pstr)<</endl></pnum></char>
发表于 2023-11-11 10:49:16 回复(2)
静态转换,去常转换,重新解释,动态转换
发表于 2022-07-28 20:32:21 回复(0)
static_cast:静态转换,用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。 dynamic_cast:用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。有动态类型检查,在进行下行转换时是安全的。 const_cast:用来修改类型的const属性。常量指针被转化成非常量指针,并且仍然指向原来的对象。常量引用被转换成非常量引用,并且仍然指向原来的对象。注意:不能直接对非指针和非引用的变量使用 const_cast 操作符 reinterpret_cast:重新解释转换。最不安全的一种转换机制,最有可能出问题 。主要用于将一种数据类型从一种类型转换为另一种类型。
发表于 2024-05-21 09:58:36 回复(0)
static_cast 静态转换,没有类型安全检查,是不安全的,转换的安全性也要开发人员来保证 dynamic_cast 动态转换,具有类型检查的功能,比 static_cast 更安全 const_cast 常量转换,常量指针(引用)被转化成非常量指针(引用),并且仍然指向原来的对象,不能直接对非指针和非引用的变量使用 reinterpret_cast 重新解释转换 这是最不安全的一种转换机制,最有可能出问题 主要用于将一种数据类型从一种类型转换为另一种类型,它可以将一个指针转换成一个整数,也可以将一个整数转换成一个指针
发表于 2023-11-11 20:53:20 回复(0)
static_cast 静态转换 dynamic_cast 动态转换 const_cast 常量转换 reinterpret_cast 重解释转换
发表于 2023-08-28 18:45:30 回复(0)
const_cast: 取消const属性 static_cast dynamic_cast reinterpret_cast
发表于 2023-08-11 20:38:00 回复(0)
static_cast dynamic_cast const_cast reinterpret_cast
发表于 2023-07-12 16:37:26 回复(0)