定义一个房间类(CRoom),要求拥有的私有数据成员:门牌号(m_id),门(m_pdoor),窗户(m_window) //其中,门是门类(CDoor)定义的对象指针成员,窗户是窗户类(CWindow)定义的对象成员
时间: 2023-12-30 20:05:50 浏览: 72
Hotmail available Checker + InFO_hotmailcheker_
以下是一个可能的 CRoom 类定义:
```cpp
class CDoor {
// 门类的定义
};
class CWindow {
// 窗户类的定义
};
class CRoom {
public:
CRoom(int id) : m_id(id), m_pdoor(nullptr) {}
~CRoom() { delete m_pdoor; } // 在析构函数中释放门对象的内存
void set_door(CDoor* door) { m_pdoor = door; }
void set_window(const CWindow& window) { m_window = window; }
private:
int m_id; // 门牌号
CDoor* m_pdoor; // 指向门对象的指针
CWindow m_window; // 窗户对象
};
```
在这个定义中,`CRoom` 类包含了一个指针成员 `m_pdoor`,用来指向一个 `CDoor` 对象。在构造函数中,我们将其初始化为 `nullptr`。同时,`CRoom` 类还包含了一个 `CWindow` 对象成员 `m_window`。
我们可以通过 `set_door` 和 `set_window` 函数来设置门和窗户,例如:
```cpp
CRoom room(101);
CDoor* pdoor = new CDoor; // 创建门对象
room.set_door(pdoor); // 将门对象指针设置为该房间的门
CWindow window;
room.set_window(window); // 将窗户对象设置为该房间的窗户
```
注意,在 `CRoom` 类的析构函数中,我们需要释放 `m_pdoor` 指向的内存,以防止内存泄漏。
阅读全文