日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

为什么类的下行转换是不安全的_类型转换

發(fā)布時(shí)間:2025/6/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为什么类的下行转换是不安全的_类型转换 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

[TOC]

# 靜態(tài)轉(zhuǎn)換

用于類(lèi)層次結(jié)構(gòu)中基類(lèi)(父類(lèi))和派生類(lèi)(子類(lèi))之間指針或引用的轉(zhuǎn)換

* 進(jìn)行上行轉(zhuǎn)換(把派生類(lèi)的指針或引用轉(zhuǎn)換成基類(lèi)表示)是安全的.

* 進(jìn)行下行轉(zhuǎn)換(把基類(lèi)指針或引用轉(zhuǎn)換成派生類(lèi)表示)時(shí),由于沒(méi)有動(dòng)態(tài)類(lèi)型檢查,所以是不安全的

* 用于基本數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換,如把int轉(zhuǎn)換成char,把char轉(zhuǎn)換成int.這種轉(zhuǎn)換的安全性也要開(kāi)發(fā)人員來(lái)保證

## 基礎(chǔ)類(lèi)型轉(zhuǎn)換

~~~

char a = 'a';

//char->double

//static_cast(將轉(zhuǎn)換誰(shuí))

double b = static_cast(a);

cout << typeid(b).name() << endl;

~~~

## 有層次關(guān)系類(lèi)的指針或引用轉(zhuǎn)換

~~~

Father *f = NULL;

Son *s = NULL;

//向下轉(zhuǎn)型,不安全

Son *s1 = static_cast(f);

//向上轉(zhuǎn)型,安全

Father *f1 = static_cast(s);

~~~

## 引用轉(zhuǎn)換

~~~

Father f;

Son s;

Father &ref_f = f;

Son &ref_s = s;

//向上轉(zhuǎn)換,安全

static_cast(ref_s);

//向下轉(zhuǎn)換,不安全

static_cast(ref_f);

~~~

# 動(dòng)態(tài)轉(zhuǎn)換

* `dynamic_cast`主要用于類(lèi)層次間的上行轉(zhuǎn)換和下行轉(zhuǎn)換

* 在類(lèi)層次間進(jìn)行上行轉(zhuǎn)換時(shí),`dynamic_cast`和`static_cast`的效果是一樣的

* 在進(jìn)行下行轉(zhuǎn)換時(shí),`dynamic_cast`具有類(lèi)型檢查的功能,比`static_cast`更安全

**基礎(chǔ)類(lèi)型不能使用動(dòng)態(tài)轉(zhuǎn)換**

~~~

Father *f = NULL;

Son *s = NULL;

//向上轉(zhuǎn)換,安全

Father *f1 = dynamic_cast(s);

//向下轉(zhuǎn)換,不安全,會(huì)檢查,如果不是多態(tài)會(huì)報(bào)error

//Son *s1 = dynamic_cast(f);

Father *f2 = new Son();

Son *s2 = dynamic_cast(f2);

~~~

# 常量轉(zhuǎn)換

該運(yùn)算符用來(lái)修改類(lèi)型的const屬性

* 常量指針被轉(zhuǎn)化成非常量指針,并且仍然指向原來(lái)的對(duì)象;

* 常量引用被轉(zhuǎn)換成非常量引用,并且仍然指向原來(lái)的對(duì)象;

**注意:不能直接對(duì)非指針和非引用的變量使用const_cast操作符去直接移除它的const.**

~~~

const int *p = NULL;

// const->不帶const

int *newP = const_cast(p);

int *pp = NULL;

const int* newPP = const_cast(pp);

~~~

# 重新解釋轉(zhuǎn)換

這是最不安全的一種轉(zhuǎn)換機(jī)制,最有可能出問(wèn)題。

主要用于將一種數(shù)據(jù)類(lèi)型從一種類(lèi)型轉(zhuǎn)換為另一種類(lèi)型。

它可以將一個(gè)指針轉(zhuǎn)換成一個(gè)整數(shù),也可以將一個(gè)整數(shù)轉(zhuǎn)換成一個(gè)指針.

~~~

int a = 10;

int *p = reinterpret_cast(a);

Father *f = NULL;

Other *o = reinterpret_cast(f);

~~~

總結(jié)

以上是生活随笔為你收集整理的为什么类的下行转换是不安全的_类型转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日一区二区 | 亚洲一区二区在线免费 | 婷婷毛片 | 九九九精品视频 | 色七七视频 | 国产在线h | 色综合色| 久久综合国产 | a毛片成人 | 在线观看视频中文字幕 | 久久久久久久网 | 澳门一级黄色片 | 欧美激情一区在线 | 成人免费毛片日本片视频 | 污网站在线观看免费 | 亚洲h在线观看 | 午夜视频观看 | 久久人妻精品白浆国产 | 日本韩国毛片 | 视频在线观看你懂的 | 美腿丝袜亚洲综合 | 大胸美女网站 | 黄色永久网站 | 亚洲码欧美码一区二区三区 | 久久婷婷成人综合色 | 黄色一级片免费播放 | 污视频网站免费在线观看 | 一级黄色在线 | 人人草av| 日韩精品在线观看视频 | 国产一区91精品张津瑜 | 日韩高清网站 | 日韩欧美视频免费在线观看 | www.国产在线观看 | 国内成人综合 | 少妇真人直播免费视频 | 午夜激情一区二区 | 精品九九九九 | 伊人影院在线播放 | 主人性调教le百合sm | 精品九九九 | 国内毛片毛片毛片毛片 | 国产一伦一伦一伦 | 国产精品视频无码 | 成人手机在线播放 | 五月天婷婷丁香花 | 精品免费在线视频 | 色宗合| 国产精品一区二 | 亚洲国产剧情在线观看 | 少妇色综合 | 人人干人 | 无码人妻丰满熟妇区96 | 成人学院中文字幕 | 日韩影视一区 | 亚洲区 欧美区 | 精品少妇一区二区三区免费观看 | 亚洲熟妇av日韩熟妇在线 | 欧美日韩123 | 九月婷婷色 | 欧美 日韩 国产 中文 | 美女精品视频 | 亚洲国产视频一区二区三区 | 欧美色图视频在线 | 91麻豆精品视频 | 你懂的视频在线播放 | 牛牛电影国产一区二区 | 午夜福利视频一区二区 | 亚洲欧美中文字幕 | 色黄视频在线观看 | 欧美小视频在线观看 | 国产美女永久无遮挡 | 怡红院一区二区三区 | 69欧美视频 | 中文字幕一区二区三区人妻 | 快射视频网 | 日本打屁股网站 | 美女被猛网站 | 亚洲精品免费看 | 欧美色图13p| 精产国产伦理一二三区 | 成人黄色三级 | 日本青青草视频 | 亚洲激情图 | 亚洲男女视频在线观看 | 天堂在线中文字幕 | 欧美一级二级片 | 欧美一区视频 | 久久男人网 | 在线免费看av的网站 | 成人在线观看一区二区三区 | mdyd—856冲田杏梨在线 | 成人免费观看视频 | 一级片黑人 | 香港三级韩国三级日本三级 | 亚洲 成人 av| 国产无码精品一区二区 | 乱码av | 男人在线视频 |