Effective C++(了解隐式接口和编译期多态)


author:

  • luixiao1223
    title: 了解隐式接口和编译期多态

多态的实现方法

  1. 运行时多态 虚函数(virtual)
  2. 编译期多态 template

显式接口和隐式接口

显示接口

void doProcessing(Widget& w)
{
    if(w.size()>10 && w!=someNastyWidget){
        Widget temp(w);
        temp.normalize();
        temp.swap(w);
    }
}

对于函数的参数而言,必须使用Widget的类型或者派生类。那么它的接口是显示的。可以查看文件
Widget

隐式接口

template<typename T> void doProcessing(T& w) {
    if (w.size() > 10 && w != someNastyWidget) { 
        T temp(w);
        temp.normalize( );
        temp.swap(w);
    }
}

多有类型只要实现函数内的基本操作都行。这是一种隐式的要求。

发布了127 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/luixiao1220/article/details/104240540