将多个逗号分隔的参数传递给自定义<<操作者

时间:2016-02-20 14:15:51

标签: c++ visual-studio

是否可以传递多个参数/具有多个参数用于自定义,重载,<< C ++中的运算符?如果是的话,怎么做。

示例:

MyClass &operator <<(int par1, int par2) {
            //do stuff with arguments

            //return current object to chain <<`s
            return *this;
        }

上面代码的一个更复杂,实现方面的版本在我当前的项目中使用,我似乎无法将其称为通常用逗号分隔参数:

MyClassObject << 4, 100;

我怎样才能实现这一点,最好用简单的语法,因为任何复杂的东西都会破坏重载运算符的目的。请注意,我已经搜索了互联网,但一无所获。

1 个答案:

答案 0 :(得分:4)

要么明确地称之为:

MyClassObject.operator<<(4,100);

或者你重新定义它只采用一个参数,例如

MyClass &operator<<(std::array<int,2> par)

MyClass &operator<<(std::pair<int,int> par)

然后调用它

MyClassObject << {4,100};