是否可以传递多个参数/具有多个参数用于自定义,重载,<< C ++中的运算符?如果是的话,怎么做。
示例:
MyClass &operator <<(int par1, int par2) {
//do stuff with arguments
//return current object to chain <<`s
return *this;
}
上面代码的一个更复杂,实现方面的版本在我当前的项目中使用,我似乎无法将其称为通常用逗号分隔参数:
MyClassObject << 4, 100;
我怎样才能实现这一点,最好用简单的语法,因为任何复杂的东西都会破坏重载运算符的目的。请注意,我已经搜索了互联网,但一无所获。
答案 0 :(得分:4)
要么明确地称之为:
MyClassObject.operator<<(4,100);
或者你重新定义它只采用一个参数,例如
MyClass &operator<<(std::array<int,2> par)
或
MyClass &operator<<(std::pair<int,int> par)
然后调用它
MyClassObject << {4,100};