public: Circle(double r=0) { rad=r; area=3.14*r*r; }接下来怎么写重载减号
时间: 2024-05-03 22:18:39 浏览: 22
如果你想重载减号,可以在类中定义一个成员函数:
```
Circle operator-(const Circle& c)
{
Circle result;
result.rad = rad - c.rad;
result.area = 3.14 * result.rad * result.rad;
return result;
}
```
这个函数定义了 Circle 类型的减法运算。它接受一个 Circle 对象作为参数,并返回一个新的 Circle 对象,表示两个圆的半径之差和面积。
你还可以在类外定义这个函数,使其成为一个全局函数:
```
Circle operator-(const Circle& c1, const Circle& c2)
{
Circle result;
result.rad = c1.rad - c2.rad;
result.area = 3.14 * result.rad * result.rad;
return result;
}
```
这个函数使用了两个 Circle 对象作为参数,并返回一个新的 Circle 对象,表示两个圆的半径之差和面积。你可以在 main 函数中调用这个函数:
```
int main()
{
Circle c1(5), c2(3);
Circle c3 = c1 - c2;
cout << "c3's radius: " << c3.rad << endl;
cout << "c3's area: " << c3.area << endl;
return 0;
}
```
输出结果应该是:
```
c3's radius: 2
c3's area: 12.56
```