c++,完整程序,class Product { string name; //产品名称 int price; //产品单价 int quantity; //剩余产品数量 public: Product(string n,int p int q); Product operator = (const Product &p); friend bool operator >(const Product &p1, const Product &p2); friend ostream& operator<<(ostream &out, Product &t ); }; 类Product说明如上所示,完成四个函数的定义,并在main函数中进行测试
时间: 2024-02-14 19:15:13 浏览: 158
好的,下面是一个完整的程序,包括 `Product` 类的定义和四个函数的实现:
```c++
#include <iostream>
#include <string>
using namespace std;
class Product {
string name; // 产品名称
int price; // 产品单价
int quantity; // 剩余产品数量
public:
Product(string n, int p, int q) : name(n), price(p), quantity(q) {}
Product operator=(const Product &p) {
this->name = p.name;
this->price = p.price;
this->quantity = p.quantity;
return *this;
}
friend bool operator>(const Product &p1, const Product &p2) {
return p1.price > p2.price;
}
friend ostream& operator<<(ostream &out, Product &t) {
out << "Name: " << t.name << "\tPrice: " << t.price << "\tQuantity: " << t.quantity;
return out;
}
};
int main() {
Product p1("product 1", 10, 5);
Product p2("product 2", 20, 3);
cout << "p1: " << p1 << endl;
cout << "p2: " << p2 << endl;
if (p1 > p2) {
cout << "p1 is more expensive than p2." << endl;
} else {
cout << "p2 is more expensive than p1." << endl;
}
p1 = p2;
cout << "After p1 = p2: " << endl;
cout << "p1: " << p1 << endl;
cout << "p2: " << p2 << endl;
return 0;
}
```
这个程序定义了一个 `Product` 类,包括三个私有成员变量 `name`、`price` 和 `quantity`,并且定义了一个有参构造函数和三个成员函数。
`operator=` 重载函数用于将一个 `Product` 对象赋值给另一个对象。
`operator>` 重载函数判断两个 `Product` 对象的价格大小关系。
`operator<<` 重载函数用于输出 `Product` 对象的信息。
在 `main` 函数中,我们创建了两个 `Product` 对象,分别输出它们的信息并比较它们的价格大小关系。然后将 `p2` 赋值给 `p1`,最后再次输出两个对象的信息。
阅读全文