实现一个名为SimpleCircle的简单圆类,其数据成员int *itsRadius为一个指向其半径值的指针,存放其半径值,设计对数据成员的各种操作,给出这个类的完整实现并测试这个类。
时间: 2024-10-23 15:15:24 浏览: 27
在C++中,我们可以创建一个名为SimpleCircle的类来表示一个简单的圆,其中包含一个指向整数的指针来存储半径值。以下是一个完整的类实现:
```cpp
#include <iostream>
class SimpleCircle {
private:
int* itsRadius; // 指向半径的指针
public:
// 构造函数,初始化半径
SimpleCircle(int radius) : itsRadius(new int{radius}) {}
// 获取半径
int getRadius() const { return *itsRadius; }
// 设置半径
void setRadius(int newRadius) { *itsRadius = newRadius; }
// 释放内存,防止内存泄漏
~SimpleCircle() { delete itsRadius; }
// 测试类的功能
void printInfo() {
std::cout << "Circle with radius: " << getRadius() << std::endl;
}
};
// 测试类
int main() {
SimpleCircle circle(5); // 创建一个半径为5的圆
circle.printInfo(); // 输出圆的信息
circle.setRadius(7); // 改变圆的半径
circle.printInfo(); // 再次输出圆的新信息
return 0;
}
```
在这个例子中,我们定义了一个构造函数来设置初始半径,getRadius和setRadius方法用于读取和修改半径值。当我们不再需要这个对象时,~SimpleCircle会自动调用,释放之前分配给itsRadius的内存。
注意,尽管这个示例展示了如何处理指针,但在现代C++中,可以考虑使用`std::optional<int>`或`std::variant<int, nullptr_t>`等更安全的方式来管理数据,尤其是当考虑到智能指针时,它们能够更好地管理资源的生命周期。
阅读全文