构建一个类CRoom,数据成员包含:int类型的房间号Np和bool类型的Occupied。成员函数包括构造函数,在构造函数中对数据成员初始化
时间: 2024-10-08 11:03:49 浏览: 32
构建一个名为`CRoom`的C++类,用于表示一个房间,数据成员主要包括一个整型变量`roomNumber`(Np代表Room Number),表示房间号码,以及一个布尔型变量`isOccupied`,表示房间是否被占用。下面是一个简单的类定义,包含了构造函数用于初始化这两个成员:
```cpp
class CRoom
{
public:
// 构造函数,用于初始化数据成员
CRoom(int np, bool occupied)
{
roomNumber = np; // 初始化房间号码
isOccupied = occupied; // 初始化房间状态
}
private:
int roomNumber; // 房间号
bool isOccupied; // 房间是否被占用
};
```
在这个类中,当你创建一个新的`CRoom`对象时,可以直接通过构造函数提供初始的房间号码和占用状态。例如:
```cpp
CRoom myRoom(101, true); // 创建一个编号为101,已占用的房间
```
相关问题
生成 c++代码: 构建一个类CRoom,数据成员包含:lnt类型的房间号No和bool类型的Occupied。成员函数包括构造函数,在构造画数中对数据成员初始化。
```cpp
#include <iostream>
class CRoom {
public:
// 构造函数,用于初始化房间号和占用状态
CRoom(int no) : roomNo(no), occupied(false) {
std::cout << "创建房间,房间号:" << roomNo << ", 状态:未占用" << std::endl;
}
private:
// 数据成员:整型的房间号和布尔型的占用标志
int roomNo; // 房间号
bool occupied; // 是否被占用
public:
// 获取房间号的方法
int getRoomNo() const { return roomNo; }
// 设置房间占用状态的方法
void setOccupied(bool isOccupied) {
if (isOccupied != occupied) {
occupied = isOccupied;
if (occupied)
std::cout << "房间已被占用" << std::endl;
else
std::cout << "房间已空闲" << std::endl;
}
}
// 重载流操作符,用于打印房间信息
friend std::ostream& operator<<(std::ostream& os, const CRoom& room) {
os << "房间号:" << room.roomNo << ", 占用状态:" << (room.occupied ? "已占用" : "未占用");
return os;
}
};
int main() {
CRoom myRoom(100);
std::cout << "我的房间:" << myRoom << std::endl;
// 设置房间为占用状态
myRoom.setOccupied(true);
return 0;
}
```
定义一个房间类(CRoom),要求拥有的私有数据成员:门牌号(m_id),门 (m_pdoor),窗户(m_window)。其中,门是门类(CDoor)定义的对象指针成员, 窗户是窗户类(CWindow)定义的对象成员。要求:每个类单独定义在两个文件中(.h 和.cpp),房间类包括:构造函数、析构函数,InstallDoor 成员函数能够实现安装门(new CDoor)的功能。要求窗户类的构造函数必须带参数,CDoor 类具有宽度,高度及修改 宽度高度功能,CWindow 类具有宽度,高度及修改宽度高度功能
CRoom.h 文件:
```c++
#ifndef CROOM_H
#define CROOM_H
#include "CDoor.h"
#include "CWindow.h"
class CRoom {
public:
CRoom(int id);
~CRoom();
void InstallDoor(double width, double height);
private:
int m_id;
CDoor* m_pdoor;
CWindow m_window;
};
#endif // CROOM_H
```
CRoom.cpp 文件:
```c++
#include "CRoom.h"
CRoom::CRoom(int id) : m_id(id), m_pdoor(nullptr), m_window(1.0, 1.0) {}
CRoom::~CRoom() {
if (m_pdoor) {
delete m_pdoor;
}
}
void CRoom::InstallDoor(double width, double height) {
if (m_pdoor) {
delete m_pdoor;
}
m_pdoor = new CDoor(width, height);
}
```
CDoor.h 文件:
```c++
#ifndef CDOOR_H
#define CDOOR_H
class CDoor {
public:
CDoor(double width, double height);
~CDoor();
void SetWidth(double width);
void SetHeight(double height);
private:
double m_width;
double m_height;
};
#endif // CDOOR_H
```
CDoor.cpp 文件:
```c++
#include "CDoor.h"
CDoor::CDoor(double width, double height) : m_width(width), m_height(height) {}
CDoor::~CDoor() {}
void CDoor::SetWidth(double width) {
m_width = width;
}
void CDoor::SetHeight(double height) {
m_height = height;
}
```
CWindow.h 文件:
```c++
#ifndef CWINDOW_H
#define CWINDOW_H
class CWindow {
public:
CWindow(double width, double height);
void SetWidth(double width);
void SetHeight(double height);
private:
double m_width;
double m_height;
};
#endif // CWINDOW_H
```
CWindow.cpp 文件:
```c++
#include "CWindow.h"
CWindow::CWindow(double width, double height) : m_width(width), m_height(height) {}
void CWindow::SetWidth(double width) {
m_width = width;
}
void CWindow::SetHeight(double height) {
m_height = height;
}
```
阅读全文