写出上述代码的完整代码
时间: 2023-07-09 18:49:40 浏览: 142
完整代码
5星 · 资源好评率100%
好的,下面是完整的代码:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class OrderItem {
public:
OrderItem(string name, int quantity, double unitPrice) :
name_(name), quantity_(quantity), unitPrice_(unitPrice) {}
double getTotalPrice() const { return quantity_ * unitPrice_; }
private:
string name_;
int quantity_;
double unitPrice_;
};
class Order {
public:
Order(int id, string customerName) : id_(id), customerName_(customerName) {}
void addItem(OrderItem item) { items_.push_back(item); }
double getTotalPrice() const {
double totalPrice = 0;
for (const auto& item : items_) {
totalPrice += item.getTotalPrice();
}
return totalPrice;
}
private:
int id_;
string customerName_;
vector<OrderItem> items_;
};
int main() {
Order order(1, "Tom");
order.addItem(OrderItem("Apple", 2, 3.0));
order.addItem(OrderItem("Banana", 3, 2.0));
order.addItem(OrderItem("Orange", 1, 4.0));
cout << "Order total price: " << order.getTotalPrice() << endl;
return 0;
}
```
在 main() 函数中,我们创建了一个 Order 对象,并向其中添加了三个 OrderItem 对象。最后,我们调用 getTotalPrice() 方法计算订单的总价,并输出结果。
在上面的代码中,Order 类与 OrderItem 类之间就是“一对多”关联关系,即一个 Order 对象可以包含多个 OrderItem 对象。而 addItem() 方法的实现关键点在于使用 vector 容器来存储 OrderItem 对象。同时,在计算订单总价时,我们利用了 C++11 中引入的 auto 关键字来遍历 OrderItem 对象列表,并调用 getTotalPrice() 方法来计算每个订单项的总价。
阅读全文