0

有什么区别:

一种)

class base{
   int a;
public:
   virtual int function();
}; 
class derived : public base{
   int b;
public:
   int function();
};

b)

class base{
   int a;
public:
   int function();
};    
class derived : public base{
   int b;
public:
   int function();
};

为什么要使用 (a) 以及为什么要使用 (b)?

(b) 是一种多态性吗?

4

2 回答 2

3

a) 覆盖基类中的方法。b) 隐藏它。b) 不是多态性。

这是一个有用的链接:The Definitive C++ Book Guide and List

于 2012-11-06T17:03:22.110 回答
1

第一个是overidding而第二个是方法隐藏

首先用于动态调度和动态多态。即:在运行时根据对象的实际类型调用适当的方法。

二是用于方法隐藏。
好读:
什么意思,警告:Derived::f(char) 隐藏 Base::f(double)?

于 2012-11-06T17:03:15.057 回答