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

            接口的實(shí)現(xiàn)。

            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()"< }

            }


            相關(guān)概念:純抽象基類:指包含純抽象函數(shù)的基類。
                               純虛構(gòu)函數(shù):用 =0 標(biāo)記的虛構(gòu)函數(shù)。
            多重繼承:指一個(gè)類直接繼承一個(gè)以上的基類。
            對(duì)純虛函數(shù)的繼承稱為接口繼承。
            IX和IY并不是真正意義上的COM接口,為使之成為COM接口,它必須繼承一個(gè)名為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;
            }


                  
            運(yùn)行結(jié)果如下:
            com_1.JPG

            總結(jié):
            1、COM接口在c++中用純抽象基類實(shí)現(xiàn)。
            2、一個(gè)COM組件可以提供多個(gè)接口。
            3、一個(gè)C++類可以使用多繼承實(shí)現(xiàn)一個(gè)提供多個(gè)接口的組件。
            在com中,對(duì)一個(gè)組件的訪問(wèn)只能通過(guò)函數(shù),而決不能直接通過(guò)變量。

            Posted on 2005-10-24 17:50 艾凡赫 閱讀(532) 評(píng)論(0)  編輯 收藏 引用 所屬分類: COM
            国内精品久久久久国产盗摄| 久久久国产99久久国产一| 国内精品久久久久久99| 日本三级久久网| 日日躁夜夜躁狠狠久久AV| 日产久久强奸免费的看| 久久综合久久综合久久| 一本一道久久综合狠狠老| 国产99久久久国产精品小说| 久久亚洲国产午夜精品理论片 | 人妻精品久久无码专区精东影业 | 久久精品一区二区影院| 91精品国产综合久久精品| 伊人久久无码中文字幕| 青草国产精品久久久久久| 久久久亚洲裙底偷窥综合 | 亚洲综合精品香蕉久久网97| 青青草国产精品久久久久| 久久成人影院精品777| 2021久久精品国产99国产精品| 少妇内射兰兰久久| 久久精品人妻一区二区三区| 亚洲精品成人网久久久久久| 日韩久久无码免费毛片软件| 亚洲国产精品无码久久久秋霞2| 久久WWW免费人成一看片| 久久99精品久久久久久动态图 | 国产成人精品久久亚洲高清不卡| 99久久精品日本一区二区免费| 久久水蜜桃亚洲av无码精品麻豆| 性欧美大战久久久久久久久 | 久久久人妻精品无码一区| 精品久久久久成人码免费动漫| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 久久久久亚洲精品日久生情| 久久综合伊人77777| 国产高潮国产高潮久久久91| 97久久国产亚洲精品超碰热| 精品久久香蕉国产线看观看亚洲| 99久久久精品免费观看国产 | 久久精品免费全国观看国产|