建立一个基类Building类,用来存储楼房的层数、房间数和总面积,由基类派生出教学楼TeachBuilding类和宿舍楼DormBuilding类,教学楼增加教室数,宿舍楼类增加宿舍数、容纳学生总人

建立一个基类Building类,用来存储楼房的层数、房间数和总面积,由基类派生出教学楼TeachBuilding类和宿舍楼DormBuilding类,教学楼增加教室数,宿舍楼类增加宿舍数、容纳学生总人数。编写程序,建立教学楼对象和宿舍楼对象,并输出它们的有关数据信息。

# include <iostream>
# include <string>
using namespace std;
class Building
{
   
   
public:
	Building(int c,int r,float a)
	{
   
   
		cen=c;
		room=r;
		area=a;
	}
protected:
	int cen;//层数
	int room;//房间数
	float area;//总面积
};

class Tea
以下是一个使用 C++ 实现以 `Building` 为基类,`House` `Office` 为派生的代码示例。`Building` 存储地址楼号,`House` 存储房号面积,`Office` 存储办公室名称电话号码: ```cpp #include <iostream> #include <string> // 基类 Building class Building { protected: std::string address; // 地址 std::string buildingNumber; // 楼号 public: // 构造函 Building(const std::string& addr, const std::string& bldgNum) : address(addr), buildingNumber(bldgNum) {} // 显示信息 void displayInfo() const { std::cout << "地址: " << address << ", 楼号: " << buildingNumber << std::endl; } }; // 派生 House class House : public Building { private: std::string roomNumber; // 房号 double area; // 面积 public: // 构造函 House(const std::string& addr, const std::string& bldgNum, const std::string& rmNum, double a) : Building(addr, bldgNum), roomNumber(rmNum), area(a) {} // 显示信息 void displayInfo() const { Building::displayInfo(); std::cout << "房号: " << roomNumber << ", 面积: " << area << " 平方米" << std::endl; } }; // 派生 Office class Office : public Building { private: std::string officeName; // 办公室名称 std::string phoneNumber; // 电话号码 public: // 构造函 Office(const std::string& addr, const std::string& bldgNum, const std::string& ofcName, const std::string& phone) : Building(addr, bldgNum), officeName(ofcName), phoneNumber(phone) {} // 显示信息 void displayInfo() const { Building::displayInfo(); std::cout << "办公室名称: " << officeName << ", 电话号码: " << phoneNumber << std::endl; } }; int main() { // 创建 House 对象 House house("北京市朝阳区", "A座", "101", 120.5); // 创建 Office 对象 Office office("上海市浦东新区", "B座", "财务办公室", "021-12345678"); // 显示 House 信息 std::cout << "住宅信息:" << std::endl; house.displayInfo(); // 显示 Office 信息 std::cout << "\n办公室信息:" << std::endl; office.displayInfo(); return 0; } ``` 在上述代码中,`Building` 是基类,`House` `Office` 是派生,通过继承 `Building` ,它们可以复用 `Building` 的属性方法。每个都有自己的构造函用于初始化成员变量,并且都有 `displayInfo` 方法用于显示相关信息。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值