(1)显示接口和运行期多态
在一般的类的实现和使用中,对象的类型是明确的,调用的函数也是在源代码中明确声明的,如果是virtual函数,具体要调用的哪个类的函数会在运行时决定,即运行期多态,如下代码:
1 class Widget{ 2 public: 3 Widget(); 4 virtual ~Widget(); 5 virtual size_t size() const; 6 virtual void normalize(); 7 void swap(Widget& other); 8 ... 9 }; 10 11 12 void doProcessing(Widget& w) 13 { 14 if(w.size() > 10 && w != someWW) 15 { 16 Widget temp(w); 17 temp.normalize(); 18 temp.swap(w); 19 } 20 }