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

            接口的實現。

            class IX
            {
            public:
             
            virtual void Fx1() = 0 ;
             
            virtual void Fx2() = 0 ;
            }

            class IY
            {
            public:
             
            virtual void Fy1() = 0 ;
             
            virtual void Fy2() = 0 ;
            }

            class CA: public IX,
               
            public IY
            {
            public:
             
            virtual void Fx1()
             
            {
               cout
            <<"Fx1()"< }

             
            virtual void Fx2()
             
            {
               cout
            <<"Fx2()"< }

             
            virtual void Fy1()
             
            {
               cout
            <<"Fy1()"< }

             
            virtual void Fy2()
             
            {
               cout
            <<"Fy2()"< }

            }


            相關概念:純抽象基類:指包含純抽象函數的基類。
                               純虛構函數:用 =0 標記的虛構函數。
            多重繼承:指一個類直接繼承一個以上的基類。
            對純虛函數的繼承稱為接口繼承。
            IX和IY并不是真正意義上的COM接口,為使之成為COM接口,它必須繼承一個名為IUnknown的接口。



            ///interface.h 
            #include "iostream.h"

            #include 
            "objbase.h"


            void trace(const char * pMsg){cout<<pMsg<<endl;}

            interface IX
            {
             
            virtual void __stdcall Fx1() = 0;
             
            virtual void __stdcall Fx2() = 0;
            }
            ;
            interface IY
            {
             
            virtual void __stdcall Fy1() = 0;
             
            virtual void __stdcall Fy2() = 0;
            }
            ;

            class CA: public IX,
                   
            public IY
            {
            public:
             
            virtual void __stdcall Fx1(){cout<<"CA::Fx1()"<<endl;}
             
            virtual void __stdcall Fx2(){cout<<"CA::Fx2()"<<endl;}

             
            virtual void __stdcall Fy1(){cout<<"CA::Fy1()"<<endl;}
             
            virtual void __stdcall Fy2(){cout<<"CA::Fy2()"<<endl;}
            }
            ;
            // com_1.cpp : Defines the entry point for the console application.
            //

            #include 
            "stdafx.h"
            #include 
            "IFace.h"

            int main(int argc, char* argv[])
            {
             trace(
            "Create an instance of the componet!");
             CA 
            * pA = new CA;
             IX 
            * pIX = pA;
             trace(
            "use the ix interface!");
             pIX
            ->Fx1();
             pIX
            ->Fx2();

             IY 
            * pIY = pA;
             trace(
            "use the iy interface!");
             pIY
            ->Fy1();
             pIY
            ->Fy2();
             pA
            ->Fx1();
             trace(
            "delete the componet!");
             delete pA;
             printf(
            "Hello World!\n");
             
            return 0;
            }


                  
            運行結果如下:
            com_1.JPG

            總結:
            1、COM接口在c++中用純抽象基類實現。
            2、一個COM組件可以提供多個接口。
            3、一個C++類可以使用多繼承實現一個提供多個接口的組件。
            在com中,對一個組件的訪問只能通過函數,而決不能直接通過變量。

            Posted on 2005-10-24 17:50 艾凡赫 閱讀(532) 評論(0)  編輯 收藏 引用 所屬分類: COM
            无码久久精品国产亚洲Av影片| 99久久精品费精品国产一区二区| 久久久久人妻一区精品| 亚洲中文字幕伊人久久无码| 亚洲日韩中文无码久久| 72种姿势欧美久久久久大黄蕉| 久久久久久青草大香综合精品| 人妻久久久一区二区三区| 久久97久久97精品免视看| 久久婷婷五月综合色高清| 久久国产精品免费一区二区三区| 亚洲精品乱码久久久久久蜜桃不卡| 国产视频久久| 久久精品国产亚洲沈樵| 精品久久久无码21p发布| 日本精品久久久久影院日本| 国产精品久久久久9999| 色欲综合久久躁天天躁蜜桃| 精品免费久久久久国产一区| 国产人久久人人人人爽| 99久久国产宗和精品1上映 | 精品久久久久久国产| 亚洲第一极品精品无码久久| 亚洲欧美精品一区久久中文字幕 | 狠狠色丁香久久婷婷综合蜜芽五月 | 国内精品久久久久影院一蜜桃| 久久久精品国产免大香伊 | 久久狠狠高潮亚洲精品| 国内精品伊人久久久影院| 青青热久久国产久精品 | 国产亚洲美女精品久久久| 久久精品国产91久久麻豆自制 | 久久中文精品无码中文字幕| 国产精品久久久久一区二区三区 | 久久久亚洲AV波多野结衣| 亚洲国产一成久久精品国产成人综合 | 国产精品18久久久久久vr| 日本强好片久久久久久AAA| 人妻精品久久久久中文字幕69| 男女久久久国产一区二区三区| 久久人人爽爽爽人久久久|