什么是隐式接口?

时间:2015-03-27 10:15:44

标签: c++ interface

我正在阅读Effective C ++。在第41项中,作者说明了显式和隐式接口之间的差异。我理解显式接口,但隐式呢?

1 个答案:

答案 0 :(得分:7)

隐式界面与模板有关。

编写模板时,即:

template<typename T>
void func(T param) {
    param.doSomething();
}

您希望类型T具有成员函数doSomething()。该成员函数是作者称之为“隐式接口”的一部分。您不在任何地方声明接口

class TemplateParam {
public:
    void doSomething();
};

但您希望传递给此模板的任何类型都能实现它。