如何将方法的参数指定为实现特定接口的任何类?
这在目标 c 中相当常见。
标准 C++ 中没有接口,但我们可以很容易地模拟它们:
class IComparable
{
protected:
IComparable() {};
public:
virtual ~IComparable() = 0 {};
virtual int Compare(const IComparable& other) const = 0;
};
我们无法实例化这个类。它实际上是一个接口。然后,您可以从中派生具体类。
如果您有一个名为 的“接口”或抽象基类Base
,那么可以接受任何实现该接口的对象的函数如下所示:
void fn(Base& obj) {
/*use Base functions on obj...*/
}