gpt4 book ai didi

c++ ->> 和 << 运算符重载

转载 作者:太空狗 更新时间:2023-10-29 19:36:50 24 4
gpt4 key购买 nike

我刚刚为我的编程课做了一个测验,但答错了这个问题:

The return type of the function to overload the operator << must be a reference to an ostream object.

我觉得这根本不对。当然,C++ 比这更开放。但我想我还是要在这里问。这是对的(或错的)吗?当涉及到运算符重载时,我的 C++ 知识开始真正消失。

最佳答案

C++ 不要求返回类型是对 ostream 的引用目的。但是,如果您尝试执行以下操作:

cout << instance_of_custom_type << 3 << "hi" << endl;

然后你需要:

ostream &operator << (ostream &os, custom_type &t);

但是,如果你正在做一些事情,比如写一个大整数类型,并且想要支持位移,它可能是这样的:

BigInt operator << (const BigInt &i, unsigned int shift);

为了进一步扩展这一点,最初使用 <<运算符用于移位。 1 << 8例如,是 256。 C++ 为此添加了一个(有点令人困惑的)第二个用途,并在 ostream 上重载了它表示“输出”到流。您可以在重载运算符中做任何您想做的事情——它就像一个函数一样工作,但是,运算符具有人类对它们的期望:程序员期望,在 C++ 中,<<是位移或流输出。

关于c++ ->> 和 << 运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4066666/

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