网上的例子,稍微有点错误。我给更改一下,附件上有源码!如有错误,请指正。
总结一下C++实现接口的技巧。
面向对象的语言诸如JAVA提供了Interface来实现接口,但C++却没有这样一个东西,尽管C++ 通过纯虚基类实现接口,譬如COM的C++实现就是通过纯虚基类实现的(当然MFC的COM实现用了嵌套类),但我们更愿意看到一个诸如 Interface的东西。下面就介绍一种解决办法。
程序6步
1、首先我们需要一些宏:
//********************************************
// Interface.h
//主要是宏定义一些关键词,可以形成接口类
//********************************************
#ifndef INTERFACE_H
#define INTERFACE_H
#define Interface class
#define DeclareInterface(name) Interface name { \
public: \
virtual ~name() {}
#define DeclareBasedInterface(name, base) class name : \
public base { \
public: \
virtual ~name() {}
#define EndInterface };
#define implements public
#endif
2、有了这些宏,我们就可以这样定义我们的接口类:
//***********************************************
// IBar.h
//通过宏定义生成我们的接口类,写一些纯虚函数
//***********************************************
#ifndef IBAR_H
#define IBAR_H
#include "Interface.h"
DeclareInterface(IBar)
virtual int GetBarData() const = 0;
virtual void SetBarData(int nData) = 0;
EndInterface
#endif