用c++画一个房子,房子由三部分组成,房子主体,屋顶和门,三个部分颜色不同
时间: 2024-12-22 14:23:30 浏览: 7
在C++中,我们可以继续扩展之前的`House`类,增加子类分别代表房子的主体、屋顶和门,并赋予每个部分不同的颜色。以下是一个基本的示例:
```cpp
#include <iostream>
#include <string>
// 主体部分
class Body {
public:
Body(std::string color) : bodyColor(color) {}
virtual ~Body() {}
std::string getColor() const { return bodyColor; }
protected:
std::string bodyColor;
};
// 屋顶部分
class Roof : public Body {
public:
Roof(std::string color) : Body(color) {}
void buildRoof() override { std::cout << "Building roof with color: " << bodyColor << "\n"; }
};
// 门部分
class Door : public Body {
public:
Door(std::string color) : Body(color) {}
void openDoor() { std::cout << "Opening door with color: " << bodyColor << "\n"; }
};
int main() {
// 创建房子主体
Body* houseBody = new Body("white");
// 创建屋顶
Roof* roof = new Roof("red");
// 创建门
Door* door = new Door("brown");
// 绑定部分到主体
houseBody->buildRoof(); // 屋顶部分操作
houseBody->openDoor(); // 门部分操作
delete houseBody;
delete roof;
delete door;
return 0;
}
```
在这个例子中,`Body`作为基类,`Roof`和`Door`作为派生类。每个部分都有其特定的颜色和相应的行为。注意这里我们使用了虚函数(通过`override`关键字)和指针,以便在不同的子类上调用正确的行为。
阅读全文