继承与虚函数

馋奶兔 提交于 2019-11-27 22:19:43

  使用继承可以定义相似的类型并对其相似关系建模。

 1 class Quote {
 2 public:
 3     std::string isbn() const;
 4     virtual double net_price(std::size_t n) const;
 5 };
 6 
 7 class Bulk : public Quote {
 8 public:
 9     double net_price(std::size_t n) const override;
10 };
View Code

  虚函数:通过virtual生命基类中希望派生类定义适合自身的版本,则用virtual来声明基类的函数,在派生类中对应函数的形参列表后面添加override关键字。

 

  动态绑定:使用同一段代码,对具有一定区别的相似类型以统一的方式进行处理。

double print_total(ostream& os, const Quote& item, size_t n)
{
    double ret = item.net_price(n);
    os << "ISBN: " << item.isbn() << " # sold: " << n << "total due: " << ret << endl;
    return ret;
}
View Code

  调用方法:

1 print_total(cout, basic, 20);//basic表示基类的函数的调用        
2 print_total(cout, bulk, 20);//bulk表示派生类函数的调用
View Code

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!