tae*_*kim 2 c++ operator-overloading
抱歉标题不清楚。最近开始学习C++,不知道如何重载运算符<<使其可重复。
这是一个示例代码。
class Foo{
private:
int* a;
int idx = 0;
public:
Foo(){a = new int[100];
void operator<< (int a) {arr[idx++] = a;}
Run Code Online (Sandbox Code Playgroud)
什么<<基本上是类获取整数作为操作数并将其保存到arr.(这里忽略溢出情况)
例如,a << 100将 100 添加到数组中。
我想要做的是使<<操作符可以重复使用内联像a << 100 << 200
我应该如何修复上面的代码以允许此功能?
提前致谢 :)
重载Foo::operator<<()实际上有两个参数:
int右侧给出的参数this来自左侧的隐式。为了允许这个运算符的链接,它应该返回一个对左侧的引用(即*this),以便在左侧本身可用。
示例代码:
#include <iostream>
struct Foo {
Foo& operator<<(int a)
{
std::cout << ' ' << a;
return *this;
}
};
int main()
{
Foo foo;
foo << 1 << 2 << 3;
}
Run Code Online (Sandbox Code Playgroud)
输出:
#include <iostream>
struct Foo {
Foo& operator<<(int a)
{
std::cout << ' ' << a;
return *this;
}
};
int main()
{
Foo foo;
foo << 1 << 2 << 3;
}
Run Code Online (Sandbox Code Playgroud)