我正在阅读Effective C ++。在第41项中,作者说明了显式和隐式接口之间的差异。我理解显式接口,但隐式呢?
答案 0 :(得分:7)
隐式界面与模板有关。
编写模板时,即:
template<typename T>
void func(T param) {
param.doSomething();
}
您希望类型T
具有成员函数doSomething()
。该成员函数是作者称之为“隐式接口”的一部分。您不在任何地方声明接口
class TemplateParam {
public:
void doSomething();
};
但您希望传递给此模板的任何类型都能实现它。