什么是隐式接口?

Nar*_*ard 1 c++ interface

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

JBL*_*JBL 7

隐式接口与模板相关.

当你写一个模板时,即:

template<typename T>
void func(T param) {
    param.doSomething();
}
Run Code Online (Sandbox Code Playgroud)

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

class TemplateParam {
public:
    void doSomething();
};
Run Code Online (Sandbox Code Playgroud)

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