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日