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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基类和派生类中使用static_cast和dynamic_cast进行类型转换

發布時間:2025/7/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基类和派生类中使用static_cast和dynamic_cast进行类型转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

先看代碼:

#include <iostream>using namespace std;class A { public:A() {cout << "A" << endl;}virtual ~A() {cout << "~A" << endl;}virtual void print() {cout << "A::Print()" << endl;} };class B : public A { public:B(int i) : index(i) {cout << "B" << endl;}virtual ~B() {cout << "~B" << endl;}virtual void print() {cout << "B::Print(),index=" << index << endl;}int index; };int main(int argc, char *argv[]) {A* pA = new A();B* pB = new B(1);A* pAB = new B(5);B* pBA = static_cast<B*>(pA);B* pBB = static_cast<B*>(pB);B* pBAB = static_cast<B*>(pAB);if (pBA) {pBA->print();}if (pBB) {pBB->print();}if (pBAB) {pBAB->print();}delete pA;delete pB;return 0; }

執行結果:

A A B A B A::Print() B::Print(),index=1 B::Print(),index=5 ~A ~B ~A

pBB和pBAB沒有任何問題,其本身就是B對象。pBA是從基類轉換為B對象,但是調用的卻是A::Print(),因為pA對象并沒有構建B對象的內存,構建的僅是基類的內存,因此輸出基類的print()。

現在改動代碼,將A中的print函數去掉:

class A { public:A() {cout << "A" << endl;}virtual ~A() {cout << "~A" << endl;}/*virtual void print() {cout << "A::Print()" << endl;}*/ };

程序在A::print()處崩潰!因為基類已經沒有print()函數了。這里的pBA類型轉換是由基類構造的對象變為派生類的指針,隱藏一個嚴重的程序BUG,但是編譯器并沒有在這里給與任何提示,還轉換成功,得到了相應的B對象指針。

接下來使用dynamic_cast進行類型轉換:

B* pBA = dynamic_cast<B*>(pA);B* pBB = dynamic_cast<B*>(pB);B* pBAB = dynamic_cast<B*>(pAB);

程序調試結果,pBA轉換后為0,并沒有轉換成功,就可以在這里對轉換對象進行判斷。

因此在使用基本類型進行轉換時,用static_cast,在涉及到對象之間的轉換時用dynamic_cast。

float val = 10.00f;

int iVal = static_cast<int>(val);

A* pA = new B();

B* pB = dynamic_cast<B*>(pA);

if (pB != nullptr) {

? ? pB->dosomething();

}

轉載于:https://my.oschina.net/u/3489228/blog/1571524

總結

以上是生活随笔為你收集整理的基类和派生类中使用static_cast和dynamic_cast进行类型转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 女生隐私免费看 | xxxwww黄色 | 黄色片免费在线观看 | 日韩美女激情 | 国产91精品久久久久 | www.四虎在线 | 亚洲欧美综合自拍 | 亚洲综合色av | 人妻互换免费中文字幕 | 91草草草 | 欧美激情videos | 欧美一级久久 | 精品少妇人妻av一区二区 | 色中文 | ,亚洲人成毛片在线播放 | 老司机午夜av | 欧美人与zoxxxx另类 | 午夜精品久久久久久久久久久久久 | 亚洲一区天堂 | 综合久久久久久 | 不卡的日韩av | 麻豆传媒网站在线观看 | 亚洲尹人| 久久婷综合 | 欧洲亚洲综合 | 国产专区自拍 | 无遮挡在线观看 | 性久久久久久久久久久久 | 岛国激情 | 在线观看av日韩 | 欧洲一区二区视频 | 波多野结衣一区二区三区 | 在线亚洲色图 | 亚洲av无码国产综合专区 | 97在线免费观看视频 | 亚洲精品乱码久久久久久蜜桃动漫 | 97干干干 | 天天躁日日躁狠狠躁伊人 | 欧日韩不卡在线视频 | 国产无精乱码一区二区三区 | 男人和女人插插 | 99re免费视频精品全部 | 摸丰满大乳奶水www免费 | 男女超爽视频免费播放 | 亚洲精品成人网 | 久久久男女 | 无码精品一区二区免费 | 日日夜夜操操 | 欧美资源在线 | 国产99久久久 | 91成人国产综合久久精品 | 伊人网影院 | 久久久久久久久久影院 | 日韩欧美一区二区三区在线 | 麻豆传媒在线视频 | 六月婷婷综合 | av免费影院 | 我们的生活第五季在线观看免费 | 欧美一级视频 | 亚洲精品成人 | 玖玖在线免费视频 | 爱爱三级视频 | 国产最新av| 色狠狠综合 | 91久久国产视频 | 久久伊人超碰 | 日日夜精品| 337p粉嫩大胆色噜噜狠狠图片 | 亚洲女人18毛片水真多 | chinese国产精品 | 91好色先生tv | 隔壁邻居是巨爆乳寡妇 | 老鸭窝av在线 | 久久国产精品久久 | 亚洲一卡二卡 | 最新黄色av网址 | 国产精品丝袜视频无码一区69 | 性开放淫合集 | 一区视频网站 | 人妻偷人精品一区二区三区 | www久久久久久 | 少妇系列在线观看 | 国产日韩精品一区 | 精品一区二区三区电影 | 一级黄色av | 久久婷婷五月综合 | 亚洲综合第一 | 久久久久久99 | 黄色大片网站在线观看 | 亚洲熟悉妇女xxx妇女av | 欧美日本一区二区三区 | 久久精品二区 | 久久久久1| 欧美精品乱码99久久蜜桃 | 视频在线观看99 | 色欲人妻综合网 | 九九视频在线播放 | 日韩精品一区二区三区不卡在线 | 婷婷一区二区三区四区 |