为什么这个不行?
我在代码中使用友好的函数,但是有一个错误,所以我找不到它。请帮帮忙。
#include<iostream>
#include<cstdlib>
using namespace std;
class Circle{
private:
int x;
public:
Circle(int x1=5){
x=x1;
friend std:ostream & operator<<(const Circle & c, std::ostream & os)
{
return os<<c.x
}
}
};
int main()
{
Circle s;
cout<< s;
system("pause");
return 0;
}发布于 2013-12-07 18:47:49
四个问题:
std:ostream替换为std::ostreamreturn os<<c.x之后添加分号最终结果:
class Circle{
private:
int x;
public:
Circle(int x1=5){
x=x1;
}
friend std::ostream & operator<<(std::ostream & os, const Circle & c)
{
return os<<c.x;
}
};发布于 2013-12-07 18:47:12
friend std:ostream & operator<<(const Circle & c, std::ostream & os)
{
return os<<c.x
}您应该在构造函数之外声明此函数。
发布于 2013-12-07 18:48:06
朋友函数需要在与构造函数相同的级别上声明,而不是在构造函数中声明。
https://stackoverflow.com/questions/20445096
复制相似问题