(1)试写出一个描述computer的类,该类包含name、manufacturer两个数据成员,该类有一个构造函数,可用于初始化这两个数据成员,该类还具有获取和设置这两个数据成员的函数成员,设置函数用于修改数据成员,获取函数用于将数据成员值打印到屏幕上
(2)试写出一个描述computer的派生类,该类包含name、manufacturer两个数据成员,该类有一个构造函数,可用于初始化这两个数据成员,该类还具有获取和设置这两个数据成员的函数成员,设置函数用于修改数据成员,获取函数用于将数据成员值打印到屏幕上
(3)试写语句完成如下功能:用构造函数生成一个os派生类的对象,构造函数用“Windows 11”、“微软”来初始化name、manufacturer 两个数据成员,调用获取函数打印上述两个成员到屏幕上;然后调用设置方法修改name为“Android”、manufacturer为“谷歌”,最后调用获取函数打印两个成员到屏幕上。
基于Monster 组和GPT的调写:
#include <iostream>
#include <string>
using namespace std;
// 基类 computer
class Computer {
protected:
string name;
string manufacturer;
public:
// 构造函数
Computer(string n, string m) : name(n), manufacturer(m) {}
// 获取和设置数据成员的函数
void setName(string n) { name = n; }
void setManufacturer(string m) { manufacturer = m; }
string getName() const { return name; }
string getManufacturer() const { return manufacturer; }
// 将数据成员值打印到屏幕上
void print() const {
cout << "Name: " << name << endl;
cout << "Manufacturer: " << manufacturer << endl;
}
};
// 派生类 os
class OS : public Computer {
public:
// 构造函数
OS(string n, string m) : Computer(n, m) {}
};
int main() {
// 构造函数生成一个os派生类的对象
OS os("Windows 11", "微软");
// 调用获取函数打印上述两个成员到屏幕上
os.print();
// 调用设置方法修改name为“Android”、manufacturer为“谷歌”
os.setName("Android");
os.setManufacturer("谷歌");
// 调用获取函数打印两个成员到屏幕上
os.print();
return 0;
}
下面是题目要求的C++代码实现:
#include <iostream>
#include <string>
using namespace std;
// 定义基类 Computer
class Computer {
public:
// 构造函数
Computer(string name, string manufacturer) {
this->name = name;
this->manufacturer = manufacturer;
}
// 获取 name
string getName() {
return name;
}
// 获取 manufacturer
string getManufacturer() {
return manufacturer;
}
// 设置 name
void setName(string name) {
this->name = name;
}
// 设置 manufacturer
void setManufacturer(string manufacturer) {
this->manufacturer = manufacturer;
}
// 打印信息
void printInfo() {
cout << "Name: " << name << endl;
cout << "Manufacturer: " << manufacturer << endl;
}
protected:
string name; // 名称
string manufacturer; // 制造商
};
// 定义派生类 OsComputer
class OsComputer : public Computer {
public:
// 构造函数
OsComputer(string name, string manufacturer) : Computer(name, manufacturer) {
}
};
int main() {
// 创建一个 OsComputer 对象,并初始化名称和制造商
OsComputer myComputer("Windows 11", "Microsoft");
// 打印信息
myComputer.printInfo();
// 修改名称和制造商
myComputer.setName("Android");
myComputer.setManufacturer("Google");
// 打印信息
myComputer.printInfo();
return 0;
}
上述代码实现了题目要求的三个部分。
在第一部分中,我们定义了一个名为 Computer 的基类,它包含两个数据成员 name 和 manufacturer,以及一个构造函数用于初始化这两个数据成员。类还具有获取和设置这两个数据成员的函数成员,以及一个打印信息的函数成员。这些函数成员的实现都比较简单,直接访问对应的数据成员即可。
在第二部分中,我们定义了一个名为 OsComputer 的派生类,它继承了基类 Computer,包含相同的数据成员和函数成员。这里的构造函数调用了基类的构造函数进行初始化。
在第三部分中,我们首先创建了一个 OsComputer 对象 myComputer,构造函数用“Windows 11”、“微软”来初始化 name、manufacturer 两个数据成员。然后调用获取函数打印上述两个成员到屏幕上;接着调用设置方法修改 name 为“Android”、manufacturer 为“谷歌”,最后再次调用获取函数打印两个成员到屏幕上,以验证设置操作是否成功。