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

            日本久久久精品中文字幕| 热99RE久久精品这里都是精品免费| 久久无码人妻一区二区三区午夜| 久久天堂AV综合合色蜜桃网| 久久99热只有频精品8| 91精品国产综合久久香蕉| 免费一级做a爰片久久毛片潮 | yellow中文字幕久久网| 久久性精品| 久久99精品国产99久久6男男| 99久久伊人精品综合观看| 国内精品伊人久久久久777| 国产成人久久精品麻豆一区 | 无码人妻精品一区二区三区久久久 | 久久亚洲欧洲国产综合| 国产精品9999久久久久| 久久人与动人物a级毛片| 国产午夜精品久久久久九九| 久久久久无码精品国产不卡| 怡红院日本一道日本久久 | 久久久久久国产a免费观看不卡| 模特私拍国产精品久久| 国产一区二区三精品久久久无广告| 久久妇女高潮几次MBA| 久久亚洲精品国产亚洲老地址 | 亚洲一区精品伊人久久伊人| 精品久久久久久久| 国产成年无码久久久久毛片| 综合人妻久久一区二区精品| 伊色综合久久之综合久久| 久久精品无码专区免费| 久久激情五月丁香伊人| 久久精品成人一区二区三区| 93精91精品国产综合久久香蕉| 久久99精品久久久久婷婷| 久久久av波多野一区二区| 亚洲国产欧美国产综合久久| 亚洲AV日韩精品久久久久| 久久久亚洲裙底偷窥综合 | 久久99精品国产麻豆婷婷| 精品熟女少妇aⅴ免费久久|