读书人

返回一个引用如何不能行

发布时间: 2012-04-01 17:23:46 作者: rapoo

返回一个引用怎么不能行?
#include <stdlib.h>
#include <iostream>
using namespace std;

class a
{
private:
int c;
public:
a (int f)
{
c=f;
}
ostream & friend operator <<(ostream &os, a &s)
{
os<<s.c;
return os;
}
};

void main()
{

a d(5);
cout << d <<endl;

}





这个我是看见书上写的 应该没错呀
ostream & friend operator <<(ostream &os, a &s)
{
os<<s.c;
return os;
}

[解决办法]
friend首先应该放在前面
其次:friend函数不应该在类内实现,而应该在类外实现

class a
{
private:
int c;
public:
a (int f)
{
c=f;
}

//friend 在前面
friend ostream & operator <<(ostream &os, a &s);
};
实现放在cpp文件中
ostream & operator <<(ostream &os, a &s) //<<英文状态下输入 {
os <<s.c;
return os;
}

读书人网 >C++

热点推荐