gpt4 book ai didi

c++ - 使用输入和输出运算符读取用户定义类型的对象

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:24 24 4
gpt4 key购买 nike

我一直在读C++ Primer并遇到了这个关于类的介绍性代码片段:

#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item book;
// read ISBN, number of copies sold, and sales price
std::cin >> book;
// write ISBN, number of copies sold, total revenue, and average price
std::cout << book << std::endl;
return 0;
}

我有两个问题:

  • 你不必重载operator>>operator<<这段代码要编译的函数?
  • 如果是这样的话,重载对象操作的输入和输出运算符而不是使用构造函数/setter 和 getter 是否被认为是好的做法?我的意思是,这是一件很常见的事情,值得去做吗?

最佳答案

在标准库中使用位移运算符进行流插入和提取是惯用的 C++。
这是可行的,因为对流对象进行位移是没有意义的 ;-)
出于同样的原因,+对于字符串连接是可以接受的。

您观察到必须为 operator<< 定义重载和 operator>>你自己是对的。但是免费功能很好。
对于运算符重载的所有细节(尽管不是移动语义),有这个问题:Operator overloading

关于c++ - 使用输入和输出运算符读取用户定义类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23303706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com