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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

12-继承与多态(下)

發(fā)布時間:2025/6/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 12-继承与多态(下) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.重寫與重載

? ?

class Parent{public:virtual void func(){cout<<" void func()"<<endl;}virtual void func(int i){cout<<" void func(int i)"<<endl;}virtual void func(int i,int j){cout<<" void func(int i,int j)"<<endl;}};class Child:public Parent { public:virtual void func(int a,int b){cout<<" void func(int a,int b)"<<endl;}virtual void func(int i,int j,int k){cout<<" void func(int i,int j,int k)"<<endl;} };

? ? 函數(shù)重載:

? ? ? ? ? ?(1)必須在同一類中,也就是在同一個作用域中。

? ? ? ? ? ?(2) 子類無法重載父類的函數(shù)。父類同名函數(shù)被覆蓋

? ? ? ? ? ? ? 如:?c.func();//錯誤,編譯只是?

? ? ? ? ? ?(3)重載是在編譯期間依據(jù)參數(shù)類型和個數(shù)決定調(diào)用函數(shù)的

? ? 函數(shù)重寫:
? ? ? ? ? ? (1) 必須發(fā)生在父類與子類之間

? ? ? ? ? ? (2) 而且父類與子類中的函數(shù)必須有全然同樣的原型。

? ? ? ? ? ? (3) 使用 virtual 聲明之后能顧產(chǎn)生多態(tài)

? ? ? ? ? ? (4) 多態(tài)是在執(zhí)行期間依據(jù)詳細對象的類型決定調(diào)用函數(shù)的

? ? 對照: 一個是在編譯期間決定的,一個是在執(zhí)行期間決定的,所以重載的效率還是比重寫的效率高。

?

二. 對虛函數(shù)的理解

? ? ?C++中多態(tài)的實現(xiàn)原理

? ? ? ? ?(1) 當類中聲明虛函數(shù)時,編譯器會在類中生成一個虛函數(shù)表

? ? ? ? ?(2) ?虛函數(shù)表是一個存儲類成員函數(shù)指針的數(shù)據(jù)結(jié)構(gòu)

? ? ? ? ?(3) ?虛函數(shù)表是由編譯器自己主動生成與維護的

? ? ? ? ?(4) ?virtual 成員函數(shù)會被編譯器放入虛函數(shù)表中

? ? ? ? ?(5) 存在虛函數(shù)時。每一個對象中都有一個指向虛函數(shù)表的指針。 ? ??



?

void run(Parent* p) {p->func(1,2); }

? ? ? ? ? ? ? ?通過虛函數(shù)表指針VPTR調(diào)用重寫函數(shù)是在程序執(zhí)行時進行的,因此須要通過尋址操作才干確 ? ? ? ?定真正的應(yīng)該調(diào)用的函數(shù)。

而普通成員函數(shù)是在編譯時就確定了調(diào)用的函數(shù)。

在效率上。虛函數(shù) ? ? ? ? ? ?的效率要低的多。

? ? 注意: 處于效率的考慮,沒有必要把全部的成員函數(shù)都聲明為虛函數(shù)。

? ?對象中VPTR指針什么時候被初始化的?

? ? ? ? (1) 對象在創(chuàng)建的時候由編譯器對VPTR指針進行初始化。

? ? ? ? (2) 僅僅有當對象的構(gòu)造全然結(jié)束后VPTR的指向才終于確定

? ? ? ? (3) 父類對象的VPTR指向父類虛函數(shù)表

? ? ? ? (4) 子類對象的VPTR指向子類虛函數(shù)表

class Parent { public:Parent(){this->func();} virtual void func(){cout<<"virtual void Parent::func()"<<endl;} };class Child:public Parent { public:Child(){func();}void func(){cout<<"void Child::func()"<<endl;} };int main() {Child p; p.func();return 0; }


? ? ?結(jié)論: 構(gòu)造函數(shù)中調(diào)用虛函數(shù)無法實現(xiàn)多態(tài)

三. 純虛函數(shù)

? ? ?面向?qū)ο蟮某橄箢?/span>

? ? ? ? ?(1) 抽象類可用于表示現(xiàn)實世界中的抽象概念

? ? ? ? ?(2) 抽象類是一種僅僅能定義類型,而不能產(chǎn)生對象的類

? ? ? ? ?(3) 抽象類僅僅能被繼承并重寫相關(guān)函數(shù)

? ? ? ? ?(4) 抽象類的直接特征是純虛函數(shù)

? ? ? 說明: 純虛函數(shù)僅僅聲明函數(shù)原型,不定義函數(shù)體的虛函數(shù)。

? ? 抽象類與純虛函數(shù)

? ? ? ? ? (1) 抽象類不能用于定義對象

? ? ? ? ? (2) 抽象類僅僅能用于定義指針和引用

? ? ? ? ? (3) 抽象中的純虛函數(shù)必須被子類重寫

class Shape { public:virtual double area()=0; };
? ? area是純虛函數(shù), =0 告訴編譯器這個函數(shù)有益僅僅聲明不定義。

class Shape { public:virtual double area() = 0; };class Rectangle : public Shape {double m_a;double m_b; public:Rectangle(double a, double b){m_a = a;m_b = b;}double area(){return m_a * m_b;} };class Circle : public Shape {double m_r; public:Circle(double r){m_r = r;}double area(){return 3.14 * m_r * m_r;} };void area(Shape* s) {cout<<s->area()<<endl; }int main(int argc, char *argv[]) {Rectangle rect(2, 3);Circle circle(4);area(&rect);area(&circle);return 0; }
小結(jié):

? ? ? (1) 函數(shù)重載與函數(shù)重寫不同

? ? ? (2) 多態(tài)是通過虛函數(shù)實現(xiàn)的

? ? ? (3) 虛函數(shù)在效率上會有影響

? ? ? (4) 抽象類是通過純虛函數(shù)實現(xiàn)的。 ? ??





總結(jié)

以上是生活随笔為你收集整理的12-继承与多态(下)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 怡红院一区二区 | 天天摸天天碰天天爽天天弄 | 欧美熟妇7777一区二区 | 少妇欧美激情一区二区三区 | 国产精品久久久久久久久久久新郎 | 伊人超碰在线 | 国产福利小视频在线 | 日本二区视频 | 日韩欧美亚洲国产 | 狠狠干很很操 | 自拍99页 | 久久国产福利 | 鲁丝av| 你懂的国产视频 | 国产精品色在线 | 免费在线激情视频 | 欧美二区三区 | 人妻91麻豆一区二区三区 | 天堂中文视频在线 | 亚洲精品www久久久久久广东 | 亚洲欧美va天堂人熟伦 | 国产在线拍揄自揄拍 | 日韩在线免费看 | 手机在线免费观看av | 在线视频午夜 | 久久综合加勒比 | 国产视频一区二区三 | 日本精品一二三区 | 亚洲熟伦熟女新五十路熟妇 | 在线视频啪 | 天天干天天操天天玩 | 欧美午夜精品一区二区 | 欧美性久久 | 亚洲日本欧美 | 亚洲第一综合网 | 最好看的日本字幕mv视频大全 | 国产调教 | 国产美女诱惑 | 欧美高清成人 | 波多野结衣家庭主妇 | 青草精品视频 | 香蕉网站在线观看 | 污av| а 天堂 在线 | 色综合网址 | 人人99| 免费在线日本 | 精品国产乱码久久久久久婷婷 | 欧美有码在线观看 | 18国产免费视频 | 国产精品网址 | 国产jzjzjz丝袜老师水多 | 亚洲视频第一页 | 91无打码 | 瑟瑟久久 | av观看在线免费 | 99久久99久久精品国产片 | 国产精品一区二区av白丝下载 | 日韩蜜桃视频 | 污片免费观看 | 亚洲一区在线免费观看 | 国产探花精品在线 | 久久久久久成人 | 人妻少妇精品无码专区 | 成人av免费播放 | 一级日批片 | 亚洲国产无线乱码在线观看 | 国产毛片欧美毛片久久久 | 久久七 | 亚洲国产欧美在线 | 国产精品成人久久久久久久 | 国产好片无限资源 | 91精品婷婷国产综合久久蝌蚪 | 99色这里只有精品 | 亚洲一级在线观看 | 国产嘿咻视频 | 国产精久久一区二区三区 | 男生女生搞鸡视频 | 在线观看免费国产 | 亚洲色图偷拍视频 | 色94色欧美sute亚洲线路二 | 国产一级性生活 | 91九色蝌蚪porny | 女教师痴汉调教hd中字 | 四虎视频| www.久久成人 | 日本电影大尺度免费观看 | 正在播放木下凛凛xv99 | 就要操就要射 | 国产内射老熟女aaaa∵ | 久久国产精品久久久久久电车 | 国产乱淫a∨片免费视频 | 久久成人精品一区二区 | 国产精品无码免费播放 | 成人mv| 国产自产在线视频 | 日韩丝袜一区 | 精品网站999 | 青青青草视频在线 |