重载<<为circle类的友元函数
时间: 2024-03-25 09:37:43 浏览: 59
好的,下面是重载<<为circle类的友元函数的示例代码:
```c++
#include <iostream>
using namespace std;
const double PI = 3.14159265358979323846;
class circle {
private:
double radius;
public:
circle(double r) {
radius = r;
}
friend ostream& operator<<(ostream& output, const circle& c);
};
ostream& operator<<(ostream& output, const circle& c) {
output << "圆的半径为:" << c.radius << endl;
output << "圆的周长为:" << 2 * PI * c.radius << endl;
output << "圆的面积为:" << PI * c.radius * c.radius << endl;
return output;
}
int main() {
circle c(5.5);
cout << c;
return 0;
}
```
在这个示例中,我们定义了一个circle类,其中包含一个私有成员变量radius和一个构造函数。我们还定义了一个重载<<为circle类的友元函数。
在主函数中,我们创建了一个圆对象c,并将其输出到控制台。由于我们重载了<<运算符,因此可以使用cout来输出圆对象。在重载<<运算符时,我们将circle类声明为友元,以便在函数中访问其私有成员变量。函数中输出了圆的半径、周长和面积。
需要注意的是,在重载<<运算符时,我们将circle类对象声明为const,以便防止对其进行修改。
阅读全文