• <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>

            Design&Art

            C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              26 Posts :: 0 Stories :: 38 Comments :: 0 Trackbacks
            一. 定義
            雙分派是指:接受者和參數(shù)都能在運(yùn)行時(shí)決定它的類(lèi)型。(從而若有同名函數(shù)的話(huà),依參數(shù)選定目標(biāo)函數(shù))

            二. 問(wèn)題的提出
            C++ 不支持雙分派,只支持單分派。也就是說(shuō)參數(shù)的類(lèi)型將在編譯階段決定。(雖然遇上同名函數(shù)的選取時(shí),沒(méi)有體現(xiàn)多態(tài),但進(jìn)入函數(shù)后,指針參數(shù)或引用參數(shù)仍然表現(xiàn)了其多態(tài))
            下面的代碼演示了該問(wèn)題:
            #include <iostream>
            using namespace std;

            class D;

            //B
            class B
            {
            public:
             
            void virtual output(B * b){cout << "B:B" << endl;}
             
            void virtual output(D * d){cout << "B:D" << endl;}
            };
            class D : public B
            {
            public:
             
            void output(B * b){cout << "D:B" << endl;}
             
            void output(D * d){cout << "D:D" << endl;}
            };

            int main()
            {
                B 
            * p1 = new D;
                B 
            * p2 = new D;
                p1
            ->output(p2);
             
             
            return 0;
            }
            以上代碼的輸出結(jié)果是:
            D:B
            如果參數(shù)能夠在運(yùn)行時(shí)決定類(lèi)型的話(huà),那么輸出來(lái)的信息應(yīng)該是D:D,因?yàn)閜2的實(shí)際類(lèi)型是D。但是,事實(shí)上輸出來(lái)的結(jié)果是D:B。也就是說(shuō)p2的類(lèi)型被誤解為B了!這就是問(wèn)題的所在。

            三. 解決方法
            Visitor設(shè)計(jì)模式
            posted on 2007-09-19 16:18 安帛偉 閱讀(1406) 評(píng)論(1)  編輯 收藏 引用 所屬分類(lèi): C++

            Feedback

            # re: 雙分派(double dispatch) 2012-03-08 14:10 陶陶
            Visitor模式是基于雙分派的,大哥!~  回復(fù)  更多評(píng)論
              

            欧美久久久久久午夜精品| 99久久99久久久精品齐齐| 午夜视频久久久久一区 | 国产午夜精品久久久久九九| 久久99精品国产麻豆婷婷| 久久国产亚洲精品| 青青青国产成人久久111网站| 国产成人无码精品久久久免费| 亚洲精品无码久久千人斩| 精品免费久久久久国产一区| 看久久久久久a级毛片| 亚洲精品无码专区久久同性男 | 国产69精品久久久久99| 无码人妻久久一区二区三区蜜桃 | 久久精品女人天堂AV麻| 久久久久久无码Av成人影院| 久久综合视频网站| 91久久香蕉国产熟女线看| 亚洲香蕉网久久综合影视| 久久免费观看视频| 精品久久久久一区二区三区| 狠狠色噜噜狠狠狠狠狠色综合久久| 久久天天婷婷五月俺也去| 久久99精品免费一区二区| 狠狠色丁香婷婷综合久久来| 国产美女久久精品香蕉69| 99久久国产精品免费一区二区| 欧美伊人久久大香线蕉综合 | 久久天天躁狠狠躁夜夜躁2014| 久久久艹| 久久国产AVJUST麻豆| 亚洲国产精品狼友中文久久久 | 久久精品国产亚洲av日韩| 久久久久亚洲AV成人片| 久久久久久久久无码精品亚洲日韩| 狼狼综合久久久久综合网| 久久综合亚洲欧美成人| 99久久免费国产精精品| 青青青青久久精品国产 | 无码精品久久久久久人妻中字| 久久亚洲AV成人无码电影|