函数声明问题

[复制链接]
 楼主| dfsa 发表于 2012-5-17 21:39 | 显示全部楼层 |阅读模式
友元函数应该只能声明在别的类中啊,以下是什么情况:
class X
{
public:
    X()
    {
        memset(a,
0,sizeof(int)*sz);    }    friend std::ostream&
operator<<(std::ostream& os,const X& x)    -----如果是定义那又何必用友元喃?
    {
        
for(int i =
0;i < sz;i++)
        {
            os
<< x.a <<
"
";
        }
        
return os;
    }
private:
   
enum{sz =
5};
   
int a[sz];
};
火箭球迷 发表于 2012-5-17 22:04 | 显示全部楼层
申明和定义在一起了,没有什么特别的情况
yybj 发表于 2012-5-17 22:11 | 显示全部楼层
友元函数没有this指针,因而它通常不是一个类的成员函数。
重载<<, >>必须用友元函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2404

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

282

主题

2404

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部