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;
}
};