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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C++ Primer 5th笔记(chap 18 大型程序工具)类型转换与多个基类

發(fā)布時(shí)間:2025/3/21 c/c++ 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ Primer 5th笔记(chap 18 大型程序工具)类型转换与多个基类 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 在只有一個(gè)基類的情況下, 派生類的指針或引用能自動(dòng)轉(zhuǎn)換成一個(gè)可訪問(wèn)基類的指針或引用。 我們可以令某個(gè)可訪問(wèn)基類的指針或引用直接指向一個(gè)派生類對(duì)象。

eg. 一個(gè)ZooAnimal、 Bear 或 Endangered 類型的指針或引用可以綁定到 Panda 對(duì)象上

/ / 接受 Panda 的基類引用的一系列操作 void print(const Bears); void highlight(const Endangered& ); ostream& operator << (ostreamS, const ZooAnimals); Panda ying_yang("ying_yang"); print (ying_yang); //把一個(gè) Panda 對(duì)象傳遞給一個(gè) Bear 的引用 highlight (ying_yang); //把一個(gè) Panda 對(duì)象傳遞給一個(gè) Endangered 的引用 cout << ying_yang << endl; //把一個(gè) Panda 對(duì)象傳遞給一個(gè) ZooAnimal 的引用

編譯器不會(huì)在派生類向基類的幾種轉(zhuǎn)換中進(jìn)行比較和選擇, 在它看來(lái)轉(zhuǎn)換到任意一種基類都一樣好

void print (const Bear & ); void print (const Endangered& ); Panda ying_yang ("ying_yang" ); print (ying_yang); // 二義性錯(cuò)誤

1.1 基于指針類型或引用類型的查找

對(duì)象、 指針和引用的靜態(tài)類型決定了我們能夠使用哪些成員

Bear *pb = new Panda ("ying_yang" ) ; pb->print ( ); / / 正確: Panda::print ( ) pb->cuddle ( );/ / 錯(cuò)誤: 不屬于 Bear 的接口 pb->highlight ( );/ / 錯(cuò)誤:不屬于 Bear 的接口 delete pb;/ / 正確: Panda::~Panda ( )

eg. 當(dāng)我們通過(guò) Endangered 的指針或引用訪問(wèn)一個(gè) Panda 對(duì)象時(shí), Panda 接口中Panda 特有的部分以及屬于 Bear 的部分都是不可見(jiàn)的:

Endangered *pe = new Panda ("ying_yang" ); pe->print ( );// 正確: Panda::print ( ) pe->toes ( );/ / 錯(cuò)誤: 不屬于 Endangered 的接口 pe->cuddle ( ) ;/ / 錯(cuò)誤: 不屬于 Endangered 的接口 pe->highlight ( );/ / 正確: Panda::highlight ( ) delete pe; 函數(shù)含有自定義版本的類
printZooAnimal::ZooAnimal ; Bear::Bear ; Endangered::Endangered; Panda::Panda
highlightEndangered::Endangered ; Panda::Panda
toesBear::Bear; Panda::Panda
cuddlePanda::Panda
析構(gòu)函數(shù)ZooAnimal::ZooAnimal ; Endangered::Endangered

總結(jié)

以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 18 大型程序工具)类型转换与多个基类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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