请编写一个电脑类(Computer),包含数据成员:型号、价格、出厂商(涉及到字符串的,请使用C++string类型) 成员函数必须包括: (1)普通构造函数(建议重载或带默认值) 5分 (2)复制构造函数(显示定义,完成复制功能,增加一条cout语句做测试)10分 (3)析构函数(一条cout测试语句)5分 (4)输入数据成员值的函数 5分 (5)输出数据成员值的函数 5分 其他成员函数如果需要请自行设计。 要求:数据是设置成私有 在主函数测试:使用对象数组方法创建3个电脑并初始化(若没有用对象数组或没有初始化,则扣10分),使用数组中的任意一个元素复制一个新的电脑(若未使用复制方法,扣10分)(一共4个对象
时间: 2023-05-18 21:06:31 浏览: 93
利用Visual C++设计自己的资源浏览器.docx
以下是C知道的回答:
请看下面的代码,这是一个满足要求的电脑类的实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
class Computer {
private:
char model[20];
double price;
char manufacturer[20];
public:
Computer(const char* model = "", double price = 0.0, const char* manufacturer = "") {
strcpy(this->model, model);
this->price = price;
strcpy(this->manufacturer, manufacturer);
}
Computer(const Computer& other) {
strcpy(this->model, other.model);
this->price = other.price;
strcpy(this->manufacturer, other.manufacturer);
cout << "复制构造函数被调用" << endl;
}
~Computer() {
cout << "析构函数被调用" << endl;
}
void setInput(const char* model, double price, const char* manufacturer) {
strcpy(this->model, model);
this->price = price;
strcpy(this->manufacturer, manufacturer);
}
void print() const {
cout << "型号:" << model << endl;
cout << "价格:" << price << endl;
cout << "出厂商:" << manufacturer << endl;
}
};
int main() {
Computer computers[3] = {
Computer("MacBook Pro", 1299.0, "Apple"),
Computer("ThinkPad X1 Carbon", 1499.0, "Lenovo"),
Computer("Surface Laptop 3", 999.0, "Microsoft")
};
Computer newComputer = computers[1];
cout << "原始电脑信息:" << endl;
computers[1].print();
cout << "复制后的电脑信息:" << endl;
newComputer.print();
return 0;
}
```
这个程序定义了一个电脑类,包含了型号、价格、出厂商三个数据成员,以及普通构造函数、复制构造函数、析构函数、输入数据成员值的函数、输出数据成员值的函数等成员函数。其中,复制构造函数和析构函数都增加了一条cout语句,用于测试。
在主函数中,我们使用对象数组方法创建了3个电脑并初始化,然后使用数组中的第二个元素复制了一个新的电脑。最后,我们分别输出了原始电脑和复制后的电脑的信息。
希望这个回答能够帮到你!
阅读全文