Circle类如何重载运算符<<和>>?
时间: 2024-05-28 22:08:17 浏览: 202
Circle类重载运算符<<和>>的实现方式如下:
1. 运算符<<重载
在Circle类中重载<<运算符,需要将其声明为友元函数,因为该函数需要访问Circle类的私有成员。代码示例如下:
```cpp
class Circle {
// 声明友元函数
friend std::ostream& operator<<(std::ostream& os, const Circle& c);
friend std::istream& operator>>(std::istream& is, Circle& c);
public:
Circle() {}
Circle(double r) : radius(r) {}
// 其他成员函数
private:
double radius;
// 其他成员变量
};
std::ostream& operator<<(std::ostream& os, const Circle& c) {
os << "Circle with radius " << c.radius;
return os;
}
```
2. 运算符>>重载
同样需要将其声明为友元函数,代码示例如下:
```cpp
std::istream& operator>>(std::istream& is, Circle& c) {
std::cout << "Enter the radius of the circle: ";
is >> c.radius;
return is;
}
```
阅读全文