用c++创建一个气球类,属性为:气球大小、颜色、形状。在main函数中分别采用栈存储和堆存储来实例化一个对象,并且给它属性赋值。调用getSize、getColor、getShape函数分别输出大小、颜色和形状。
时间: 2024-10-23 14:11:41 浏览: 36
在C++中,我们可以创建一个名为Balloon的类来表示气球,包含大小(size)、颜色(color)和形状(shape)这三种属性。为了演示栈和堆存储,我们将使用`std::stack`和`new`关键字。下面是详细的代码示例:
```cpp
#include <iostream>
#include <stack> // 包含栈容器
using namespace std;
class Balloon {
public:
float size; // 气球大小
string color; // 颜色
string shape; // 形状
// 默认构造函数
Balloon() {}
// 获取属性的成员函数
void getSize() const { cout << "气球大小: " << size << endl; }
void getColor() const { cout << "气球颜色: " << color << endl; }
void getShape() const { cout << "气球形状: " << shape << endl; }
private:
// 私有成员,防止外部直接修改
friend void setProperties(Balloon* balloon, float s, string c, string sh); // 友元函数
};
// 定义友元函数用于在堆上设置气球属性
void setProperties(Balloon* balloon, float s, string c, string sh) {
balloon->size = s;
balloon->color = c;
balloon->shape = sh;
}
int main() {
// 使用栈存储气球对象
stack<Balloon> balloonStack;
Balloon stackBalloon;
setProperties(&stackBalloon, 5.0f, "红色", "心形");
stackBalloon.getSize(); // 调用获取大小
stackBalloon.getColor(); // 调用获取颜色
stackBalloon.getShape(); // 调用获取形状
// 使用堆存储气球对象
Balloon* heapBalloon = new Balloon();
setProperties(heapBalloon, 7.5f, "蓝色", "圆形");
heapBalloon->getSize();
heapBalloon->getColor();
heapBalloon->getShape();
// 对于堆存储,记得删除对象以释放内存
delete heapBalloon;
return 0;
}
```
上述代码中,我们在栈上创建了一个Balloon对象,同时在堆上动态地分配了一个新的对象。注意,由于栈的特性,`heapBalloon`对象需要手动用`delete`删除。
阅读全文