C++定义了一个名为Quote的类作为基类表示按原价销售的书籍,Bulk_quote的类作为派生类表示可以打折销售的书籍。这些类包含两个函数:isbn()表示书籍的ISBN编号,netPrice()表示实际出售的价格。
时间: 2024-03-16 17:46:32 浏览: 50
好的,我了解了你的问题。针对你的问题,这里给出一个简单的示例代码:
```c++
#include <iostream>
#include <string>
class Quote {
public:
Quote() = default;
Quote(const std::string& bookNo, double price) : bookNo(bookNo), price(price) {}
std::string isbn() const { return bookNo; }
virtual double netPrice(std::size_t n) const { return n * price; }
virtual ~Quote() = default;
private:
std::string bookNo;
protected:
double price = 0.0;
};
class Bulk_quote : public Quote {
public:
Bulk_quote() = default;
Bulk_quote(const std::string& bookNo, double price, std::size_t minQty, double discount)
: Quote(bookNo, price), minQty(minQty), discount(discount) {}
double netPrice(std::size_t n) const override {
if (n >= minQty) {
return n * (1 - discount) * price;
} else {
return n * price;
}
}
private:
std::size_t minQty = 0;
double discount = 0.0;
};
int main() {
Quote q("123456", 10.0);
Bulk_quote bq("234567", 20.0, 3, 0.2);
std::cout << "ISBN: " << q.isbn() << ", price: " << q.netPrice(4) << std::endl;
std::cout << "ISBN: " << bq.isbn() << ", price: " << bq.netPrice(4) << std::endl;
return 0;
}
```
在这个示例代码中,Quote类表示按原价销售的书籍,包含了书籍的ISBN编号和价格两个数据成员,以及一个计算实际出售价格的虚函数netPrice。Bulk_quote类则表示可以打折销售的书籍,继承自Quote类,并添加了最小销售数量和折扣率两个数据成员,同时重写了netPrice函数以计算打折后的实际出售价格。
在主函数中,我们分别创建了一个Quote对象和一个Bulk_quote对象,并调用它们的isbn和netPrice函数输出它们的ISBN编号和实际出售价格。输出结果如下:
```
ISBN: 123456, price: 40
ISBN: 234567, price: 48
```
这里假设Quote类表示的是按原价出售的书籍,而Bulk_quote类表示的是可以打折销售的书籍,所以在Bulk_quote类中添加了最小销售数量和折扣率两个数据成员,重写了netPrice函数以计算打折后的实际出售价格。在主函数中,我们创建了一个Quote对象和一个Bulk_quote对象,并调用它们的isbn和netPrice函数输出它们的ISBN编号和实际出售价格。
阅读全文