使用继承可以定义相似的类型并对其相似关系建模。
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 };
虚函数:通过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; }
调用方法:
1 print_total(cout, basic, 20);//basic表示基类的函数的调用 2 print_total(cout, bulk, 20);//bulk表示派生类函数的调用
原文:https://www.cnblogs.com/sphoneix/p/11380265.html