我必须重载哪个运算符?
如果我想像这样使用某物,我必须重载哪个运算符?
MyClass C;
cout<< C;
我的类的输出将是字符串。
Which operator do I have to overload if I want to use sth like this?
MyClass C;
cout<< C;
The output of my class would be string.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您必须将
operator<<
重载为:如果此函数需要访问
MyClass
的私有成员,那么您必须将其设为friendMyClass
的 code>,或者,您可以将工作委托给类的某些公共函数。例如,假设您有一个点类定义为:
然后您可以将
operator<<
重载为:并且您可以将其用作:
输出:
在线演示: http://ideone.com/zjcYd
希望有所帮助。
if you've to overload
operator<<
as:If this function needs to access private members of
MyClass
, then you've to make itfriend
ofMyClass
, or alternatively, you can delegate the work to some public function of the class.For example, suppose you've a point class defined as:
Then you can overload
operator<<
as:And you can use it as:
Output:
Online demo : http://ideone.com/zjcYd
Hope that helps.
流运算符:<<
您应该将其声明为您班级的朋友:
The stream operator: <<
You should declare it as a friend of your class:
您应该将
operator<<
实现为自由函数。You should implement
operator<<
as a free function.