gpt4 book ai didi

c++ - 如何在 C++ 中重载 << 运算符以重复使用?

转载 作者:行者123 更新时间:2023-12-01 14:34:02 25 4
gpt4 key购买 nike

抱歉,标题不明确。最近开始学习C++,不知道如何重载运算符<<使其可重复。

这是一个示例代码。

class Foo{
private:
int* a;
int idx = 0;

public:
Foo(){a = new int[100];
void operator<< (int a) {arr[idx++] = a;}

什么 <<基本上是类获取整数作为操作数并将其保存到 arr 中.(这里忽略溢出的情况)

例如,a << 100将 100 添加到数组中。

我想做的是制作<<运算符可以内联重复使用,如 a << 100 << 200我应该如何修复上面的代码以允许此功能?

提前致谢:)

最佳答案

重载Foo::operator<<()实际上有两个参数:

  1. 参数int作为右侧给出
  2. 隐式this从左侧开始。

要允许链接此运算符,它应该返回对左侧的引用(即 *this ),以便在左侧可用。

示例代码:

#include <iostream>

struct Foo {
Foo& operator<<(int a)
{
std::cout << ' ' << a;
return *this;
}
};

int main()
{
Foo foo;
foo << 1 << 2 << 3;
}

输出:

 1 2 3

Live demo on coliru

关于c++ - 如何在 C++ 中重载 << 运算符以重复使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62210534/

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