Whi-Wolf 2023-08-10 19:07 采纳率: 33.3%
浏览 4
已结题

C++流运算符重载问题

之前在接触Java类的过程中,main函数中的输出和普通输出一样。但C++学习时,遇到了似乎还挺重要的流运算符等一系列重载,于是疑惑为什么需要重载,而不能直接cout呢?

我自己听完网课,觉得是cout也是ostream类定义的对象,而cout如果要访问自定义类里的私有元素,就需要声明友元,因为类之间是并列的关系。

但下图框起来的部分,看上去是在定义重载,不是很懂是起什么作用?

img

希望捞捞!

  • 写回答

3条回答 默认 最新

  • bostonAlen 2023-08-10 19:44
    关注

    就是为了语法上让你能直接输入输出你自定义的结构体,因为无法预判你的结构体是什么样的,所以没办法实现。比如你自己定义了一个复杂的struct里面有很多成员有int,有string,也有其他复杂的结构体,那你cout这个结构体,会输出什么,所以这块你可以自定义输出这个结构体的格式和内容。这就是意义。就像c语言实现一个打印函数一样,去打印某个结构体,里面实现就是printf打印基础类型的变量。
    c++中struct和class除了默认访问权限,其他都一样。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月19日
  • 已采纳回答 8月11日
  • 创建了问题 8月10日

悬赏问题

  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)
  • ¥30 python,LLM 文本提炼
  • ¥15 关于将inet引入的相关问题
  • ¥15 关于一个倒计时的操作和显示设计
  • ¥15 提问STK的问题,哪位航天领域的同学会啊
  • ¥15 苹果系统的mac m1芯片的笔记本使用ce修改器使用不了
  • ¥15 单相逆变的电压电流双闭环中进行低通滤波PID算法改进
  • ¥15 关于#java#的问题,请各位专家解答!