当前位置:首页 » 《随便一记》 » 正文

c++ 4种类型转换

28 人参与  2024年02月22日 19:16  分类 : 《随便一记》  评论

点击全文阅读


1. 常量转换(const_cast)。=》方便赋值

常量转换用于去掉表达式的const属性,使其变成非常量表达式,方便赋值。常量转换不能改变表达式的类型,只能改变const属性。示例代码:

const int a = 10;

int b = const_cast<int&>(a);

2. 静态转换(static_cast)。=》隐式自动类型转换

静态类型转换主要用于2种转换环境

2.1 C++内置类型的转换:

原有类型的自动类型转换,如short转int,int转double,向上转型等

不能转内置类型指针!!

2.2 当有继承关系存在时:(用于向上转型

如果使用static_cast 由子类向父类转型,向上转型,天然安全安全。

static_cast提供编译器认为安全的类型转换,例如在继承中,可以用派生类对象给基类对象赋值;

静态转换可以在编译时期完成,适用于具有继承关系的类或者指针类型之间的转换。静态转换会进行一些类型检查,但是不会进行运行时检查。如果类型无法转换,则会编译报错。

示例代码:

double d = 3.14;

int i = static_cast<int>(d);

3、reinterpret_cast =》对应的是C语言中的显示类型转换,支持非相近类型的转换

C++还提供了reinterpret_cast用于任意类型的转换,即reinterpret_cast运算符允许将任意指针转换到其他指针类型,也允许做任意整数类型和任意指针类型之间的转换。转换时,执行的是逐个比特复制的操作。reinterpret中文意为“重新解释; 重新诠释;”。

reinpreter_cast<type-id> (exp)

其中, reinterpret_cast后的尖括号中的type-id类型必须是一个指针、引用、算术类型、函数指针或者成员指针。它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针。

4、动态转换(dynamic_cast)。

类型转换:dynamic_cast(用于向下转型)

向下转型父类对象指针/引用  “转型为”  子类指针/引用;

父类对象指针/引用 ->子类指针/引用(用dynamic_cast转型是安全的)

要求:

 dynamic_cast只能用于父类含有虚函数的类(必须是多态,因为虚函数表内存了一个判断它是子类还是父类)

dynamic_cast会先检查是否能转换成功,能成功则转换,不能则返回nullptr

动态转换可以在运行时期完成,适用于具有继承关系的类或指针类型之间的转换。动态转换会进行类型检查,如果类型无法转换,则返回空指针(对于指针类型)或抛出bad_cast异常(对于引用类型)。

示例代码:

class Base { virtual void foo() {} };

class Derived : public Base {};

Base* ptr = new Derived;

Derived* dptr = dynamic_cast<Derived*>(ptr);

if (dptr != nullptr) {

    // 转换成功

} else {

    // 转换失败

}

另注意:

向上转型是指:子类对象指针/引用 -> 父类指针/引用(不需要转换,赋值兼容规则)


点击全文阅读


本文链接:http://zhangshiyu.com/post/69494.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 我无名分,我不多嗔小说完结篇(陆景铄林悠悠)(我无名分,我不多嗔)全书无套路阅读无广告小说大结局
  • 奈何春风不曾渡我虐心反转_童烟沈叙白陆依在线看_小说后续在线阅读_无删减免费完结_
  • 鹿雪附加完整在线阅读(小祖宗她带着双宝闹翻天)最近更新列表
  • 你要战功我给你,妖兽入侵你哭啥高质量好文叶天凌筱完本_你要战功我给你,妖兽入侵你哭啥高质量好文(叶天凌筱)
  • 夫君和小三霸占了我的将军府,我杀疯了阅读_雪儿谭绍木兰全集_小说后续在线阅读_无删减免费完结_
  • 鹿溪小说(鹿溪)终章+番外(穿进恐怖游戏后,我和反派HE了)一口气阅读
  • 完结文留给儿子的副卡月月刷爆,他却因睡桥底被送进收容所列表_完结文留给儿子的副卡月月刷爆,他却因睡桥底被送进收容所(娄墨霆宋佑轩)
  • 你活着,却死在我等你的第三年后续+番外_谨言佳佳温以宁全集_小说后续在线阅读_无删减免费完结_
  • 相思溺于夏时雨小说(裴景澈初念可)章节目录+起始篇章(相思溺于夏时雨)全章无套路在线
  • 未婚夫重生归来叫停手术,把剥开肚子的我困在手术台上40分钟(裴临渊阮离歌)
  • 完结文离婚是你提,净身出户你又哭什么精彩分享列表_完结文离婚是你提,净身出户你又哭什么精彩分享(苏铭余素伊)
  • 全书浏览哥哥重生救我,我带队灭了组织!(陈致远陈知韫)_哥哥重生救我,我带队灭了组织!(陈致远陈知韫)全书结局

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1