C++显式转型

    xiaoxiao2021-03-26  6

    类型转换(将expression转换为type_id类型)使用场合static_cast< type_id>(expression)主要用于非多态类型之间的转换,不提供运行时的检查来确保转换的安全1、用于类层次结构中,基类和子类之间指针和引用的转换;进行上行转换,也就是子类->父类,这种转换是安全的;下行是不安全的;2、用于基本数据类型的转换,如int转换为char等,这种转换也不安全3、用于将void指针转换为目标类型指针,极其不安全的dynamic_cast< type_id>(expression)type_id必须是类的指针或引用或void*;如果type_id是指针,则expression必须是指针,如果type_id是引用,则expression必须是引用主要用于类层次之间的上行和下行转换,还可用于类之间的交叉转换。在上行转换时,dynamic_cast同static_cast,下行时dynamic_cast具有类型检查功能,比static_cast安全。在多态类型之间的转换主要使用dynamic_castconst_cast< type_id>(expression)用来将类型的const,volatile,和_unaligned属性移除。你不能直接对非指针和非引用的变量使用const_cast操作符直接移除其的const,volatile,和_unaligned属性常量指针被转换成非常量指针,并且仍然指向原来的对象;常量引用被转换为非常量引用,并且仍然引用原来的对象reinterpret_cast< type_id>(expression)主要用于将一种数据类型从一种类型转换为另一种类型。可以将一个指针转换成一个整数,也可以将一个整数转换成一个指针;允许将任何指针类型转换为其它的指针类型。
    转载请注明原文地址: https://ju.6miu.com/read-600147.html

    最新回复(0)