使用c++,创建一个气球类,属性为:气球大小、颜色、形状。在 main 函数中分别采用栈存储和堆存储来实例化一个对象,并且给它属性赋值。调用getSize、getColor、getShape函数分别输出大小、颜色和形状。
时间: 2024-10-19 21:11:04 浏览: 37
在C++中,我们可以创建一个名为`Balloon`的类,包含气球的大小、颜色和形状属性。接着,我们会展示如何通过栈和堆存储实例化对象。下面是相关的代码示例:
```cpp
#include <iostream>
#include <stack> // 包含栈容器
// 气球类
class Balloon {
public:
// 构造函数
Balloon(int size, std::string color, std::string shape)
: balloon_size(size), color(color), shape(shape) {}
// 获取属性
int getSize() const { return balloon_size; }
std::string getColor() const { return color; }
std::string getShape() const { return shape; }
private:
// 气球大小
int balloon_size;
// 气球颜色
std::string color;
// 气球形状
std::string shape;
};
int main() {
// 使用栈存储
std::stack<Balloon> stack_balloon;
Balloon stack_balloo(10, "红色", "心形");
stack_balloon.push(stack_balloo);
std::cout << "栈中气球信息 (通过引用): \n";
Balloon& stack_balloon_top = stack_balloon.top();
std::cout << "大小: " << stack_balloon_top.getSize() << "\n";
std::cout << "颜色: " << stack_balloon_top.getColor() << "\n";
std::cout << "形状: " << stack_balloon_top.getShape() << "\n";
// 使用堆存储
Balloon* heap_balloon = new Balloon(20, "蓝色", "圆形");
std::cout << "堆中气球信息: \n";
std::cout << "大小: " << heap_balloon->getSize() << "\n";
std::cout << "颜色: " << heap_balloon->getColor() << "\n";
std::cout << "形状: " << heap_balloon->getShape() << "\n";
delete heap_balloon; // 释放堆内存
return 0;
}
```
在这里,我们展示了如何通过`std::stack`(栈)和动态内存分配(堆)来创建`Balloon`对象。对栈中的气球,我们通过栈顶元素的引用直接访问属性;对于堆中的气球,需要使用指针访问。
阅读全文