练习15.1
基类将类型相关的函数与派生类不做改变直接继承的函数区别对待,对于某些函数,基类希望他的派生类个自定义适合自身的版本,此时基类就将这些函数声明成虚函数。
练习15.2
protected:允许类的派生类访问其成员,而不允许其他用户访问
private:禁止所有用户包括其派生类访问其私有成员
练习15.3
1 #include <iostream> 2 #include <string> 3 #include <utility> 4 #include <memory> 5 #include <vector> 6 7 using namespace std; 8 9 class Quote { 10 public: 11 Quote() = default; 12 Quote(const string &book, double sales_price) : bookNo(book), price(sales_price) {} 13 string isbn() { return bookNo; } 14 virtual double net_price(size_t n) const{ return n * price; } 15 virtual ~Quote() = default; 16 private: 17 string bookNo; 18 protected: 19 double price = 0.0; 20 }; 21 22 double print_total(ostream& os, const Quote& item, size_t t); 23 24 int main() 25 { 26 27 system("pause"); 28 return 0; 29 } 30 31 double print_total(ostream & os, const Quote &item, size_t t) 32 { 33 double ret = item.net_price(t); 34 os << "ISBN: " << item.isbn << " # sold: " << t << " total due: " << ret << endl; 35 return ret; 36 }
时间: 2024-10-11 17:12:55