4. 定义一个圆形类, 其数据成员包括圆心坐标和半径,并实例化两个圆形对象,有构造函数、析构函数、缺省参数、内联函数
时间: 2024-04-29 19:27:03 浏览: 161
你好,感谢您的提问。下面是对您的问题的回答:
为了定义一个圆形类,我们可以使用以下代码:
```
#include <iostream>
#include <cmath>
class Circle {
public:
Circle(double x = 0, double y = 0, double r = 0) : x_(x), y_(y), r_(r) {
std::cout << "Creating a circle with center (" << x << ", " << y << ") and radius " << r << std::endl;
}
~Circle() {
std::cout << "Destroying a circle with center (" << x_ << ", " << y_ << ") and radius " << r_ << std::endl;
}
double area() const {
return M_PI * r_ * r_;
}
double circumference() const {
return 2 * M_PI * r_;
}
inline double distance_to(const Circle& other) const {
return std::sqrt(std::pow(x_ - other.x_, 2) + std::pow(y_ - other.y_, 2));
}
private:
double x_;
double y_;
double r_;
};
int main() {
Circle c1(0, 0, 2);
Circle c2(1, 1, 3);
std::cout << "Area of c1: " << c1.area() << std::endl;
std::cout << "Circumference of c1: " << c1.circumference() << std::endl;
std::cout << "Distance between c1 and c2: " << c1.distance_to(c2) << std::endl;
return 0;
}
```
在上面的代码中,我们创建一个名为 Circle 的类,并在其中定义了圆心坐标 x 和 y 以及半径 r 作为私有成员变量。构造函数和析构函数分别用于创建和销毁 Circle 对象,同时为了方便我们还添加了一个距离计算函数 distance_to 作为内联函数。我们还可以使用缺省参数来实现一些较为便捷的初始化操作。
在我们的 main 函数中,我们创建了两个 Circle 对象 c1 和 c2,并对其进行了一定的计算和输出,来验证我们所写的圆形类是否正常工作。
希望这个回答能够帮到您,如有更多问题或疑问,欢迎继续与我交流。
阅读全文