Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何超载<&书信电报;c+中的运算符+;重复使用?_C++_Operator Overloading - Fatal编程技术网

C++ 如何超载<&书信电报;c+中的运算符+;重复使用?

C++ 如何超载<&书信电报;c+中的运算符+;重复使用?,c++,operator-overloading,C++,Operator Overloading,对不起,标题不清楚。 最近我开始学习C++,我不知道如何重载运算符 < >返回一个引用>代码> *这个< /C>。这是不相关的,但您应该使用向量来避免内存泄漏。尽量避免使用原始new class Foo{ private: std::vector<int> a; public: Foo &operator<< (int a) { arr.push_back(a); return *this; } }; c

对不起,标题不清楚。
最近我开始学习C++,我不知道如何重载运算符<代码> < >返回一个引用>代码> *这个< /C>。这是不相关的,但您应该使用向量来避免内存泄漏。尽量避免使用原始
new

class Foo{
private:
    std::vector<int> a;

public:
    Foo &operator<< (int a) {
        arr.push_back(a);
        return *this;
    }
};
class-Foo{
私人:
std::载体a;
公众:

Foo&operator通过返回对实例的引用来启用重载的
Foo::operator链接,以便您可以调用另一个方法:

class Foo{
private:
    std::vector<int> a;   
public:
    Foo(){}
    Foo& operator<< (int a) {
        arr.push_back(a);
        return *this;
    }
};
class-Foo{
私人:
std::载体a;
公众:
Foo(){}

Foo&operator返回对
*this
的引用。这是不相关的,但您应该使用向量来避免内存泄漏。尝试避免原始
新建
使用
std::vector
推回
放置回
而不是动态数组和插入而不检查边界。
#include <iostream>

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

int main()
{
  Foo foo;
  foo << 1 << 2 << 3;
}
class Foo{
private:
    std::vector<int> a;   
public:
    Foo(){}
    Foo& operator<< (int a) {
        arr.push_back(a);
        return *this;
    }
};