有什么区别:
A)
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)是一种多态吗?
答案 0 :(得分:3)
a)覆盖基类中的方法。 b)隐藏它。 b)不是多态性。
这是一个有用的链接:The Definitive C++ Book Guide and List
答案 1 :(得分:1)
首先是覆盖,第二种是方法隐藏。
首先用于动态调度和动态多态。即:在运行时根据对象的实际类型调用适当的方法。
第二个用于方法隐藏
好读:
What's the meaning of, Warning: Derived::f(char) hides Base::f(double)?