一个Visual C++ interface可以被如下地定义:
- 可以由0或多个interface继承
- 不可以继承于一个基类
- 只可以包含public, pure irtual methods
- 不可以包含constructors, destructors, 或者operators
- 不可以包含sstatic methods
- 不可以包含data members; 允许properties
modifier __interface interface-name {interface-definition};
下面是一个简单的interface的例子:
__interface IMyInterface {
HRESULT CommitX();
HRESULT get_X(BSTR* pbstrName);
};
注意不需要显式的申明CommitX和get_X是纯虚的。对于第一个函数等价的定义是:
virtual HRESULT CommitX() = 0;
http://msdn.microsoft.com/en-us/library/ksek8777(VS.80).aspx
Explicit Overrides (C++)
如果在两个或以上的interfaces中申明了相同的虚函数,并且如果一个类从这些interfaces中继承,那么可以显式地重载这些虚函数。