建立一个基类building ,该类中有数据成员:一座楼房的层数、房间数以及它的总平方数。建立派生类housing,继承building,housing中有数据成员:卧室和浴室的数量;另外,建立派生类
时间: 2023-05-01 10:02:11 浏览: 68
这段文字描述了建立了一个基础建筑building,其中有数据成员:一座楼房的层数、房间数以及它的总平方数。同时建立了派生类housing,继承building,housing中有数据成员:卧室和浴室的数量;另外,还建立了派生类student_housing,继承housing,student_housing中有数据成员:室友的数量。
相关问题
建立一个基类Building,用来存储一座楼房的层数、房间数以及它的总平方英尺数。建立派生类Housing,继承Building,并存储下面的内容:卧室和浴室的数量,另外,建立派生类Office,继承Building,并存储灭火器和电话的数目。然后,编制应用程序,建立住宅楼对象和办公楼对象,并输出它们的有关数据。
好的,我会为你解答这个问题。以下是实现代码:
```
#include <iostream>
using namespace std;
class Building {
protected:
int numFloors; // 层数
int numRooms; // 房间数
int totalSqft; // 总面积
public:
Building(int f, int r, int s) {
numFloors = f;
numRooms = r;
totalSqft = s;
}
void display() {
cout << "Number of floors: " << numFloors << endl;
cout << "Number of rooms: " << numRooms << endl;
cout << "Total square footage: " << totalSqft << endl;
}
};
class Housing : public Building {
private:
int numBedrooms; // 卧室数量
int numBathrooms; // 浴室数量
public:
Housing(int f, int r, int s, int b, int ba) : Building(f, r, s) {
numBedrooms = b;
numBathrooms = ba;
}
void display() {
Building::display();
cout << "Number of bedrooms: " << numBedrooms << endl;
cout << "Number of bathrooms: " << numBathrooms << endl;
}
};
class Office : public Building {
private:
int numFireExtinguishers; // 灭火器数量
int numPhones; // 电话数量
public:
Office(int f, int r, int s, int fe, int p) : Building(f, r, s) {
numFireExtinguishers = fe;
numPhones = p;
}
void display() {
Building::display();
cout << "Number of fire extinguishers: " << numFireExtinguishers << endl;
cout << "Number of phones: " << numPhones << endl;
}
};
int main() {
Housing house(2, 5, 2000, 3, 2);
Office office(3, 10, 5000, 10, 20);
cout << "Housing data: " << endl;
house.display();
cout << endl;
cout << "Office data: " << endl;
office.display();
return 0;
}
```
这个程序首先定义了一个名为`Building`的基类,其中包含三个成员变量:层数、房间数以及总面积。然后,它创建了两个派生类:`Housing`和`Office`。`Housing`类包含卧室和浴室的数量,`Office`类包含灭火器和电话的数量。这两个派生类都通过`public`继承了基类`Building`。
在`main`函数中,程序创建了一个`Housing`对象和一个`Office`对象,并分别调用它们的`display`函数来输出它们的数据。由于`Housing`和`Office`类都重载了`display`函数,因此它们会输出自己的数据,同时也会调用基类的`display`函数输出继承自基类的数据。
用c++建立一个基类Building,用来存储一座楼房的层数、房间数以及它的总平方英尺数。建立派生类Housing,继承Building,并存储下面的内容:卧室和浴室的数量,另外,建立派生类Office,继承Building,并存储灭火器和电话的数目。然后,编制应用程序,建立住宅楼对象和办公楼对象,并输出它们的有关数据。
好的,根据您的问题,以下是 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
class Building {
protected:
int floors; // 层数
int rooms; // 房间数
int totalArea; // 总平方英尺数
public:
Building(int f, int r, int a) {
floors = f;
rooms = r;
totalArea = a;
}
};
class Housing : public Building {
private:
int bedrooms; // 卧室数量
int bathrooms; // 浴室数量
public:
Housing(int f, int r, int a, int b, int bth) : Building(f, r, a) {
bedrooms = b;
bathrooms = bth;
}
void display() {
cout << "Housing:\nFloors: " << floors << "\nRooms: " << rooms << "\nTotal Area: " << totalArea << "\nBedrooms: " << bedrooms << "\nBathrooms: " << bathrooms << endl;
}
};
class Office : public Building {
private:
int fireExtinguishers; // 灭火器数目
int phones; // 电话数目
public:
Office(int f, int r, int a, int fe, int ph) : Building(f, r, a) {
fireExtinguishers = fe;
phones = ph;
}
void display() {
cout << "Office:\nFloors: " << floors << "\nRooms: " << rooms << "\nTotal Area: " << totalArea << "\nFire Extinguishers: " << fireExtinguishers << "\nPhones: " << phones << endl;
}
};
int main() {
Housing myHouse(2, 5, 2000, 3, 2);
Office myOffice(3, 10, 5000, 20, 15);
myHouse.display();
cout << endl;
myOffice.display();
return 0;
}
```
运行上述代码会得到以下输出:
```
Housing:
Floors: 2
Rooms: 5
Total Area: 2000
Bedrooms: 3
Bathrooms: 2
Office:
Floors: 3
Rooms: 10
Total Area: 5000
Fire Extinguishers: 20
Phones: 15
```
以上代码中,我们首先定义了一个基类 Building,其中包含了楼房的层数、房间数以及总平方英尺数,然后用 Housing 类和 Office 类继承自 Building 类,并增加了它们各自的特征。接下来,在主函数中,我们创建了一个住宅楼对象和一个办公楼对象,并分别调用它们的 display 函数来输出它们的数据。