龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

COM技术纵横谈(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
二:什么是接口 前面已经提到过,COM组件与客户大家打交道的唯一办法是通过接口。在C++的实现中,我们一般用抽象基类来定义接口,然后利用C++类的多

  二:什么是接口

  前面已经提到过,COM组件与客户大家打交道的唯一办法是通过接口。在C++的实现中,我们一般用抽象基类来定义接口,然后利用C++类的多重继承实现该组件。下面给出一个简单的示意:

////////////////
// iface.h
////////////////

#ifndef IFACE_H
#define IFACE_H 1

#define interface class

interface IA
{
public:
    virtual func1() = 0;
    virtual func2() = 0;
};

interface IB
{
public:
    virtual func3() = 0;
    virtual func4() = 0;
};

#endif

//////--iface.h end--//////


////////////////
// test.c
////////////////

#include "iface.h"

class Ca : public IA, IB
{
public:
    Ca(int i) : m_Count(i) {}
    virtual func1() { cout << "IA::func1 is " << m_Count * 1 << endl; } virtual func2() { cout << "IA::func2 is " << m_Count * 2 << endl; } virtual func3() { cout << "IB::func3 is " << m_Count * 3 << endl; } virtual func4() { cout << "IB::func4 is " << m_Count * 4 << endl; } int m_Count; }; main() { IA* pIa; IB* pIb; Ca* pCa="new" Ca(2); pIa="pCa;" pIa> func1();
    pIa -> func2();
    pIb -> func3();
    pIb -> func4();
    delete pCa;
}

//////--test.c end--////// 

精彩图集

赞助商链接