欧美不卡高清一区二区三区,xxxxx做受大片在线观看免费,一本之道高清无码视频,亚洲爆乳成人无码AAA片漫画

聊城共贏網(wǎng)絡(luò),聊城網(wǎng)站建設(shè)
我們專(zhuān)注:聊城做網(wǎng)站,聊城建網(wǎng)站,聊城網(wǎng)站建設(shè),網(wǎng)站制作,虛擬主機(jī),域名注冊(cè),網(wǎng)站推廣等。聯(lián)系電話:15066359825 點(diǎn)擊這里給我發(fā)消息
最新公告 行業(yè)資訊  
當(dāng)前位置:首頁(yè) --> 最新動(dòng)態(tài) --> 網(wǎng)站公告
C++多態(tài)演示\c++多態(tài)性演示
發(fā)布時(shí)間:2014/5/8 16:03:20

共贏網(wǎng)絡(luò):初學(xué)者對(duì)于多態(tài)的概念總是理解不清楚,一下通過(guò)幾個(gè)實(shí)例在理解多態(tài)。
多態(tài)描述的是使用基類(lèi)的指針或引用操作多個(gè)類(lèi)型的能力。

我們知道,子類(lèi)的指針是可以隱式轉(zhuǎn)化為父類(lèi)的,所以我們?cè)谶M(jìn)行程序設(shè)計(jì)的時(shí)候如果要對(duì)一個(gè)未知的類(lèi)型進(jìn)行處理,可以在方法聲明時(shí)把參數(shù)的類(lèi)型聲明為父類(lèi)的指針。

這要我們就是實(shí)現(xiàn)了根據(jù)傳入的類(lèi)型執(zhí)行不同的方法。這里的關(guān)鍵是子類(lèi)在重寫(xiě)父類(lèi)的虛方法時(shí)是在虛方法表的相應(yīng)位置對(duì)父類(lèi)虛方法實(shí)現(xiàn)覆蓋。

舉個(gè)例子:

頭文件classFile.h:

#ifndef classFile_Header_File
#define classFile_Header_File
class father
{
public:
virtual void show();
};
class son: public father
{
public:
void show();
void sayhi();
};
#endif

這里我們?cè)谧宇?lèi)中對(duì)父類(lèi)實(shí)現(xiàn)了override(C++沒(méi)有提供override關(guān)鍵字,所以改寫(xiě)父類(lèi)的方法要格外小心)。

TestPoly.cpp代碼如下:

#include<iostream>
#include"classFile.h"
using namespace std;

void hello(father* fp)
{
fp->show();
}
int main()
{
father f;
hello(&f);
son s;
hello(&f);

}

inline void father::show()
{
cout<<"I am father"<<endl;
}

inline void son::show()
{
cout<<"I am son"<<endl;
}

inline void son::sayhi()
{
cout<<"Hi, I am son"<<endl;
}

這里,傳入父類(lèi)的指針將調(diào)用father::show(),傳入子類(lèi)的指針時(shí),雖然進(jìn)行了隱式的類(lèi)型轉(zhuǎn)化,但是由于子類(lèi)在其繼承的虛方法表中相應(yīng)的位置覆蓋了父類(lèi)的show()方法,所用調(diào)用的實(shí)際上son::show()的內(nèi)容。此時(shí)子類(lèi)的方法表中不存在father::show()了,如果我們把virtual關(guān)鍵字去掉,那么father::show()和son::show()將同時(shí)存在與子類(lèi)的方法表中。

那么如果子類(lèi)做了父類(lèi)沒(méi)用做的事情,我們應(yīng)如何調(diào)用了?

比如這里,我們的子類(lèi)中實(shí)現(xiàn)了sayhi()方法,這是父類(lèi)指針father*無(wú)法獲取到的地址(實(shí)際是無(wú)法直接獲取到,通過(guò)手動(dòng)的指針偏移還是可以的,不知道是C++的優(yōu)點(diǎn)還是缺點(diǎn)),這個(gè)地方,如果我們能夠通過(guò)實(shí)際傳入的對(duì)象指針類(lèi)型進(jìn)行操作就OK了。還好C++為我們提過(guò)了這個(gè)功能,那就是引入關(guān)鍵字dynamic_cast。

我們把hello()函數(shù)改寫(xiě)如下:

void hello(father* fp)
{
son* ps=dynamic_cast<son*>(fp);//將fp 轉(zhuǎn)換為son*類(lèi)型
if(ps)//如果轉(zhuǎn)換失敗則返回0
ps->sayhi();
else
fp->show();
}

調(diào)用:

int main()
{
father f;
hello(&f);//轉(zhuǎn)換失敗,執(zhí)行else
son s;
hello(&s); //輸出Hi,I am son

}

www.lzbwfk.cn

銷(xiāo)售部 點(diǎn)擊這里給我發(fā)消息
技術(shù)部
點(diǎn)擊這里給我發(fā)消息
售后服務(wù) 點(diǎn)擊這里給我發(fā)消息
公司電話(傳真) 15066359825
聊城建網(wǎng)站首頁(yè)   公司簡(jiǎn)介   網(wǎng)站建設(shè)   虛擬主機(jī)   域名注冊(cè)   網(wǎng)站推廣   公司資訊   成功案例   服務(wù)中心   聯(lián)系我們  網(wǎng)站地圖
版權(quán)所有 2008-2009 共贏網(wǎng)絡(luò) www.lzbwfk.cn 公司地址:聊城市利民東路 郵編:252000
銷(xiāo)售熱線:15066359825 技術(shù)支持:QQ:297369059 銷(xiāo)售在線服務(wù): QQ:914082597
網(wǎng)站建設(shè)公司專(zhuān)業(yè)從事:聊城做網(wǎng)站,聊城建網(wǎng)站,聊城網(wǎng)站建設(shè),聊城網(wǎng)站制作,虛擬主機(jī),域名注冊(cè),網(wǎng)站推廣等服務(wù)
聊城共贏網(wǎng)絡(luò)  
分公司:臨清網(wǎng)站建設(shè)陽(yáng)谷網(wǎng)站建設(shè)、高唐網(wǎng)站建設(shè)茌平網(wǎng)站建設(shè)、東阿網(wǎng)站建設(shè)冠縣網(wǎng)站建設(shè)、莘縣網(wǎng)站建設(shè)