定义一个房间类(CRoom),要求拥有的私有数据成员:门牌号(m_id),门 (m_pdoor),窗户(m_window)。其中,门是门类(CDoor)定义的对象指针成员, 窗户是窗户类(CWindow)定义的对象成员。要求窗户类的构造函数必须带参数,CDoor 类具有宽度,高度及修改 宽度高度功能,CWindow 类具有宽度,高度及修改宽度高度功能。
时间: 2024-02-06 10:10:18 浏览: 63
以下是房间类 CRoom 的定义:
```c++
#include "CDoor.h"
#include "CWindow.h"
class CRoom {
private:
int m_id;
CDoor* m_pdoor;
CWindow m_window;
public:
CRoom(int id, int doorWidth, int doorHeight, int windowWidth, int windowHeight)
: m_id(id), m_pdoor(new CDoor(doorWidth, doorHeight)), m_window(windowWidth, windowHeight) {}
~CRoom() {
delete m_pdoor;
}
void setDoorSize(int width, int height) {
m_pdoor->setWidth(width);
m_pdoor->setHeight(height);
}
void setWindowSize(int width, int height) {
m_window.setWidth(width);
m_window.setHeight(height);
}
};
```
其中,构造函数用于初始化门和窗户对象,同时为门牌号赋值。注意,我们需要在析构函数中手动释放门对象的内存,因为其是通过 new 关键字动态分配的。
同时,我们还提供了修改门和窗户尺寸的功能,这里使用门对象的成员函数来实现。
阅读全文