(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 }
View Code

相关文章: