青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Dict.CN 在線詞典, 英語學習, 在線翻譯

學海苦作舟,書山勤為徑

留下點回憶

常用鏈接

統(tǒng)計

積分與排名

Denoise

English study

Web技術(shù)

數(shù)據(jù)壓縮

一些連接

最新評論

為什么C++中只有指針和引用才能實現(xiàn)多態(tài)?

類似代碼如下:
class A
{
public:
    virtual void Test(){}
};

class B:public A
{
public:
   virtual void Test(){}
};

B b;
A a = b;
A * pA = &b;

a.Test();
pA->Test();

大家都知道a.Test調(diào)用的是A::Test,而pA->Test調(diào)用的是B::Test,那么為什么呢?

首先來看a.Test;其實很容易理解,這里的a就是一個A類型的變量,它的內(nèi)存布局在賦值的時候已經(jīng)從B轉(zhuǎn)換到A了,多于的數(shù)據(jù)都被丟棄,因此其就是一個A類型的變量。
而對于pA來說,其是一個指針,其類型雖然是A,但指向的區(qū)域的內(nèi)容卻是一個B類型的內(nèi)存結(jié)構(gòu),雖然內(nèi)存結(jié)果的布局與A兼容,但其虛函數(shù)表中的Test卻是B的實現(xiàn);因此如上面所說。同樣引用也會達到如此的效果。
我想這就是所說的指針和引用不會引發(fā)內(nèi)存中任何“與類型有關(guān)的內(nèi)存委托操作”吧。

posted on 2011-04-06 21:27 笨笨 閱讀(3973) 評論(8)  編輯 收藏 引用 所屬分類: 代碼優(yōu)化

評論

# re: 為什么C++中只有指針和引用才能實現(xiàn)多態(tài)?[未登錄] 2011-04-06 21:47 jejer

我認為是:
1 默認賦值操作不改變vtable 還是A的vtable
2 指針拷貝不改變vtable 還是B的vtable  回復  更多評論   

# re: 為什么C++中只有指針和引用才能實現(xiàn)多態(tài)? 2011-04-06 22:55 笨笨

@jejer
你可以這么說  回復  更多評論   

# re: 為什么C++中只有指針和引用才能實現(xiàn)多態(tài)? 2011-04-06 23:05 hook

能不能先看看書。。。Inside C++ Obj Model 寫了多少年了都。就算不看現(xiàn)成的東西,研究一下編譯器原理自己做個實現(xiàn)然后再跟現(xiàn)實中的比較才有提高,你這樣自己瞎猜真的有點浪費生命……

btw,如果你說的多態(tài)是指“同一個函數(shù)調(diào)用根據(jù)上下文有不同語義”的話,并不只有指針和引用才能實現(xiàn)多態(tài),template、bind+functor都可以。  回復  更多評論   

# re: 為什么C++中只有指針和引用才能實現(xiàn)多態(tài)? 2011-04-06 23:25 so

假設(shè):
void fun(A a)
{
a.memfun1();
}

B b;
fun(b);
//如果memfun1是虛函數(shù),且具有多態(tài)性質(zhì),那么可能進入A派生類的memfun1中,如果在此函數(shù)中訪問派生類變量;那么該是怎樣一回事呢?
//另外,b轉(zhuǎn)化到一個局部變量~~傳遞到fun函數(shù),是怎樣的過程,如何轉(zhuǎn)化?  回復  更多評論   

# re: 為什么C++中只有指針和引用才能實現(xiàn)多態(tài)? 2011-04-06 23:51 笨笨

@hook
不想說更多,你可能誤解我的意思了,謝謝你的留言。。。  回復  更多評論   

# re: 為什么C++中只有指針和引用才能實現(xiàn)多態(tài)? 2011-04-06 23:55 笨笨

@so
//如果memfun1是虛函數(shù),且具有多態(tài)性質(zhì),那么可能進入A派生類的memfun1中,如果在此函數(shù)中訪問派生類變量;那么該是怎樣一回事呢?
這調(diào)用的是A的memfun1;因此不會訪問派生類(B)的變量,說實話,它沒有。。。

//另外,b轉(zhuǎn)化到一個局部變量~~傳遞到fun函數(shù),是怎樣的過程,如何轉(zhuǎn)化?
這個參數(shù)傳遞的過程是通過調(diào)用A的拷貝構(gòu)造函數(shù)來完成的;如果A沒有編譯器默認產(chǎn)生一個,因此到函數(shù)內(nèi)部就只是A的類型了。如果你這里改成指針,就不會調(diào)用拷貝構(gòu)造函數(shù),最后調(diào)用的是B的memfun1.  回復  更多評論   

# re: 為什么C++中只有指針和引用才能實現(xiàn)多態(tài)? 2011-04-11 12:47 EvilGhost

沒看懂標題和內(nèi)容有什么關(guān)系。  回復  更多評論   

# re: 為什么C++中只有指針和引用才能實現(xiàn)多態(tài)?[未登錄] 2011-08-29 11:14 無名

沒看懂標題和內(nèi)容有什么關(guān)系。  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一本综合久久| 久久五月天婷婷| 国产欧美日韩综合精品二区| 欧美日韩国产精品一卡| 欧美91大片| 欧美日韩视频第一区| 欧美性淫爽ww久久久久无| 国产精品美女久久久| 国产区在线观看成人精品| 国内外成人在线视频| 亚洲国产精品一区| 亚洲午夜视频在线观看| 欧美在线免费一级片| 可以免费看不卡的av网站| 狂野欧美激情性xxxx欧美| 欧美成人中文字幕| 99视频热这里只有精品免费| 亚洲欧美日韩国产成人精品影院 | 久久一区二区三区四区| 欧美v国产在线一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美成人69av| 国产精品美女久久| 亚洲国产精品一区二区尤物区| 亚洲自啪免费| 久久久视频精品| 亚洲美女毛片| 免费成人高清视频| 国产日产欧美一区| 一本到12不卡视频在线dvd| 久久高清国产| 亚洲精品视频免费在线观看| 久久久国产精品一区| 久久精品视频免费播放| 亚洲精品午夜精品| 久久久一区二区三区| 国产日韩欧美精品在线| 亚洲图片在线观看| 亚洲国产精品小视频| 亚洲欧美日韩成人高清在线一区| 欧美精品亚洲精品| 亚洲国产精品成人| 久久综合色一综合色88| 亚洲午夜一二三区视频| 欧美视频官网| 亚洲视频一区二区| 亚洲日本理论电影| 欧美成人午夜激情视频| 尤物99国产成人精品视频| 欧美在线free| 羞羞色国产精品| 国产麻豆成人精品| 久久成人在线| 欧美在线地址| 在线成人性视频| 久久蜜桃av一区精品变态类天堂| 亚洲综合日韩在线| 国产精品日韩精品| 欧美一区二区三区视频| 一区二区欧美亚洲| 国产精品视频精品| 午夜精品影院| 欧美专区日韩专区| 精久久久久久久久久久| 欧美国产精品人人做人人爱| 久久综合婷婷| 日韩亚洲欧美在线观看| 亚洲人成毛片在线播放| 中文国产成人精品| 亚洲精品一区在线观看香蕉| 欧美大片在线观看一区| 免费成人高清视频| 亚洲人成人99网站| 日韩一级片网址| 欧美午夜精品理论片a级按摩| 亚洲一区二区久久| 亚洲欧洲精品一区二区| 亚洲伦理自拍| 亚洲欧美成人网| 怡红院精品视频在线观看极品| 狂野欧美激情性xxxx| 欧美黑人多人双交| 亚洲一区中文| 久久黄色影院| 日韩一区二区久久| 午夜精彩国产免费不卡不顿大片| 狠狠88综合久久久久综合网| 亚洲国产欧美另类丝袜| 欧美私人网站| 加勒比av一区二区| 最新中文字幕亚洲| 久久一区国产| 久久精品国产77777蜜臀| 欧美极品在线观看| 欧美精品一区二区久久婷婷| 亚洲网站视频福利| 欧美一区二区三区四区在线观看| 亚洲韩国一区二区三区| 亚洲一区二区视频在线观看| 影音先锋另类| 中文久久乱码一区二区| 亚洲二区免费| 亚洲欧美日韩国产一区二区| 亚洲看片免费| 欧美中文字幕精品| 亚洲免费一在线| 老鸭窝亚洲一区二区三区| 亚洲欧美国产精品桃花| 女同一区二区| 久久精品国产亚洲高清剧情介绍| 欧美77777| 久久全球大尺度高清视频| 欧美日韩在线播放三区| 亚洲国产一区二区三区在线播| 国产亚洲精品aa| 亚洲少妇最新在线视频| 99国产精品一区| 欧美电影电视剧在线观看| 久久一区免费| 国产精品女人网站| 一区二区三区日韩精品| 亚洲精品久久久蜜桃| 欧美一区激情| 欧美一级大片在线免费观看| 欧美激情精品久久久久久变态| 久久偷看各类wc女厕嘘嘘偷窃| 国产精品久久久久久久久| 亚洲精品乱码视频| 亚洲卡通欧美制服中文| 免费观看日韩av| 欧美电影打屁股sp| 有坂深雪在线一区| 午夜精品一区二区三区在线视 | 欧美在线一区二区| 亚洲国产第一| 国产精品专区h在线观看| 亚洲国产婷婷| aaa亚洲精品一二三区| 欧美91福利在线观看| 亚洲国内在线| 正在播放亚洲一区| 国产精品久久久久久久免费软件| 亚洲欧洲精品一区二区三区波多野1战4| 精品1区2区3区4区| 欧美成人综合在线| 亚洲精品乱码久久久久久久久| 一本大道av伊人久久综合| 欧美日韩在线播放一区| 亚洲一区二区在线观看视频| 久久成年人视频| 精久久久久久久久久久| 欧美丰满高潮xxxx喷水动漫| 亚洲精品欧洲精品| 欧美一级夜夜爽| 尤物精品在线| 欧美日产在线观看| 欧美亚洲日本网站| 99国产精品国产精品毛片| 欧美另类一区二区三区| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲影视综合| 久久久综合网站| 亚洲精品自在久久| 国产精品av久久久久久麻豆网| 欧美一区二区三区电影在线观看| 欧美刺激午夜性久久久久久久| 日韩亚洲视频在线| 国内精品久久久久伊人av| 欧美精品成人一区二区在线观看 | 欧美日韩直播| 久久久久久久久久久一区 | 另类春色校园亚洲| 一区二区激情视频| 国产午夜精品久久久| 欧美成人一区二免费视频软件| 中文欧美在线视频| 美日韩丰满少妇在线观看| 亚洲夜晚福利在线观看| 影音先锋日韩精品| 国产精品一级二级三级| 欧美激情综合网| 久久久xxx| 亚洲永久免费| 日韩午夜精品视频| 欧美 日韩 国产 一区| 欧美在线视频二区| 亚洲视频网在线直播| 亚洲精品在线视频| 玉米视频成人免费看| 国产精品资源| 国产精品白丝av嫩草影院| 欧美激情综合色| 你懂的国产精品| 久久综合婷婷| 久久九九热re6这里有精品 | 欧美尤物一区| 正在播放亚洲一区| 亚洲精品在线观看视频| 亚洲二区在线观看| 欧美福利一区|