C++編程語言的應用對於開發人員來說是一個非常有用的應用語言。不過其中還有許多比較高深的內容值得我們去花大量的時間去學習。在這裡就先為大家介紹一下有關C++使用接口的實現方法。
面向對象的語言諸如JAVA提供了Interface來實現接口,但C++卻沒有這樣一個東西,盡管C++ 通過純虛基類實現接口,譬如COM的C++實現就是通過純虛基類實現的當然MFC的COM實現用了嵌套類),但我們更願意看到一個諸如 Interface的東西。下面就介紹一種解決辦法。
首先我們需要一些宏:
- //
- // Interfaces.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
有了這些宏,我們就可以這樣定義我們的接口了:
- //
- // IBar.h
- //
- DeclareInterface(IBar)
- virtual int GetBarData() const = 0;
- virtual void SetBarData(int nData) = 0;
- EndInterface
是不是很像MFC消息映射那些宏啊,熟悉MFC的朋友一定不陌生。現在我們可以像下面這樣來實現C++使用接口這一功能:
- //
- // Foo.h
- //
- #include "BasicFoo.h"
- #include "IBar.h"
- class Foo : public BasicFoo, implements IBar
- {
- // Construction & Destruction
- public:
- Foo(int x) : BasicFoo(x)
- {
- }
- ~Foo();
- // IBar implementation
- public:
- virtual int GetBarData() const
- {
- // add your code here
- }
- virtual void SetBarData(int nData)
- {
- // add your code here
- }
- };
怎麼樣,很簡單吧,並不需要做很多的努力我們就可以實現C++使用接口這一操作了。