c++中<<运算符重载怎么写啊
3个回答
展开全部
class MyClass{
int member1;
string member2;
friend ostream& operator<<(ostream& out, const MyClass& myclass){
out<<member1<<member2;
return out;
}
}
大概就是这么写。也可以不重载为友元,而改用成员函数获取成员变量的值。
我们平常写cout<<a<<"sdfghj"<<endl;为什么能成立, 就是因为<<在iostream 里进行了重载。
而 cout 是在 iostream 里定义的,ostream类的对象。
在重载<<时,返回值类型是ostream&, 第一个参数也是ostream& 。也就是说,表达式cout<<a的返回值仍是 cout。因此cout<<a<<"sdfghj"才能成立。
int member1;
string member2;
friend ostream& operator<<(ostream& out, const MyClass& myclass){
out<<member1<<member2;
return out;
}
}
大概就是这么写。也可以不重载为友元,而改用成员函数获取成员变量的值。
我们平常写cout<<a<<"sdfghj"<<endl;为什么能成立, 就是因为<<在iostream 里进行了重载。
而 cout 是在 iostream 里定义的,ostream类的对象。
在重载<<时,返回值类型是ostream&, 第一个参数也是ostream& 。也就是说,表达式cout<<a的返回值仍是 cout。因此cout<<a<<"sdfghj"才能成立。
展开全部
重载和一般的函数一样,只是函数名称变成了operator<<,完整的是:void operator<<(parm1,parm2),如果要放在类中的话,只能有一个参数,另外一个隐含的参数是类的成员,或者设置成友元函数。最好把重载函数作为全局函数来写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ostream& operator<<(ostream& out,/*要输出的内容*/)//一般传入一个结构体之类的,原先的输出运算符不能直接输出的类型
{
/*要执行的操作*/
/*如*/out << "你好" << endl;
return out;
}
{
/*要执行的操作*/
/*如*/out << "你好" << endl;
return out;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询