VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 556|回复: 4

[交流] 输出流为什么不能重载呢?

[复制链接]
53_avatar_middle
在线会员 发表于 2016-10-9 15:33:24 | 显示全部楼层 |阅读模式
在类中申明的友元,我是按照<C++primer plus>敲上去的可是运行不了。C:\Users\Y70\Desktop\1.png
  1. std::ostream& operator<<(std::ostream os, const vector &vec)
  2. {
  3.         os << vec.x << "  " << vec.y << "  " << vec.z;
  4.         return os;
  5. }
复制代码




上一篇:由i++和++i引起一道问题的思考
下一篇:初级经典C语言题目一道
53_avatar_middle
ico_lz  楼主| 发表于 2016-10-9 15:35:47 | 显示全部楼层
输出流为什么不能重载呢?
53_avatar_middle
ico_lz  楼主| 发表于 2016-10-9 15:39:10 | 显示全部楼层
输出流为什么不能重载呢?
74_avatar_middle
在线会员 发表于 2016-10-9 17:42:52 | 显示全部楼层
對自定義型別 重載 輸出流 需要重載 basic_ostream 模板
  1. #include <iostream>
  2. #include <string>

  3. class Animal
  4. {
  5. public:
  6.     std::string name;


  7. };

  8. template<class charT>
  9. inline std::basic_ostream<charT>& operator<<( std::basic_ostream<charT>& ostream,const Animal& a)
  10. {
  11.     ostream<<"i'm "<<a.name<<"\n";
  12.     ostream<<"The king of all things\n";
  13.     return ostream;
  14. }

  15. int main()
  16. {
  17.     Animal a;
  18.     a.name = "cat";
  19.     std::cout<<a;

  20.     return 0;
  21. }
复制代码

评分

参与人数 1威望 +2 +2 热心值 +2 收起 理由
51_avatar_small Syc + 2 + 2 + 2 赞一个!

查看全部评分

53_avatar_middle
ico_lz  楼主| 发表于 2016-10-10 14:45:08 | 显示全部楼层
zuiwuchang 发表于 2016-10-9 17:42
對自定義型別 重載 輸出流 需要重載 basic_ostream 模板

那为什么重载输入符时不用重载basic_istream
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-3-23 22:02

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表