基类负责定义在层次关系中所有类共同拥有的成员,而每个派生类定义各自持有的成员。
基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明成虚函数。
class Quote{
public:
std::string isbn() const;
virtual double net_price(std::size_t n) const;
};
派生类必须通过使用类派生列表明确指出它是哪个基类继承而来。
类派生列表的形式:首先是一个冒号,后面紧跟以逗号分隔的基类列表,其中每个基类前面有访问说明符:
class Bulk_quote : public Quote{
public:
double net_price(std:size_t) const override;
};
派生类必须在其内部对所有重新定义的虚函数进行声明。基类中说明了虚函数后,派生类中对应的函数可以不必说明为虚函数。
因为Bulk_quote 在派生类列表使用了public关键字,因此完全把Bulk_quote的对象当成Quote的对象来使用。
C++新标准允许派生类显示地注明