用c++编写 设计一个楼房基类Building,包含变量floors表示层数、areas表示建筑面 积、name表示建筑名称。建立派生类House表示居住楼,增加变量ds表示 单元数。再建立派生类Office表示办公楼,增加变量cs表示公司数。 提示: House 类和Office类都公有继承Building 类,floors. areas都定义为公共的的,派生类可以使用。而ds和cs都定义为私有。创建对象,为对象的成员变量赋值并打印。
时间: 2024-02-03 12:14:44 浏览: 145
基类和派生类 面向对象程序设计 C++ 实验报告
以下是代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Building {
public:
int floors; // 层数
int areas; // 建筑面积
string name; // 建筑名称
};
class House : public Building {
private:
int ds; // 单元数
public:
void set_ds(int num) { ds = num; }
int get_ds() { return ds; }
};
class Office : public Building {
private:
int cs; // 公司数
public:
void set_cs(int num) { cs = num; }
int get_cs() { return cs; }
};
int main() {
House h1;
h1.floors = 10;
h1.areas = 2000;
h1.name = "Residential Building";
h1.set_ds(5);
cout << "House information:" << endl;
cout << "Floors: " << h1.floors << endl;
cout << "Areas: " << h1.areas << endl;
cout << "Name: " << h1.name << endl;
cout << "Units: " << h1.get_ds() << endl;
Office o1;
o1.floors = 20;
o1.areas = 5000;
o1.name = "Office Building";
o1.set_cs(10);
cout << "Office information:" << endl;
cout << "Floors: " << o1.floors << endl;
cout << "Areas: " << o1.areas << endl;
cout << "Name: " << o1.name << endl;
cout << "Companies: " << o1.get_cs() << endl;
return 0;
}
```
输出结果:
```
House information:
Floors: 10
Areas: 2000
Name: Residential Building
Units: 5
Office information:
Floors: 20
Areas: 5000
Name: Office Building
Companies: 10
```
在代码中,我们定义了一个基类 `Building`,包含了三个变量:`floors` 表示层数,`areas` 表示建筑面积,`name` 表示建筑名称。然后,我们创建了两个派生类 `House` 和 `Office`,用于表示居住楼和办公楼。
在 `House` 类中,我们增加了一个私有变量 `ds` 表示单元数,并实现了 `set_ds` 和 `get_ds` 用于对 `ds` 变量进行赋值和获取。同样,在 `Office` 类中,我们增加了一个私有变量 `cs` 表示公司数,并实现了 `set_cs` 和 `get_cs` 用于对 `cs` 变量进行赋值和获取。
在 `main` 函数中,我们创建了一个 `House` 对象 `h1` 和一个 `Office` 对象 `o1`,分别对其成员变量进行赋值并输出结果。
阅读全文