通过具有多个参数的构造函数进行隐式转换

Mob*_*erg 0 c++ constructor casting implicit

如果我有这两个构造函数MyClass:

MyClass(int n1);
MyClass(int n1, int n2);
Run Code Online (Sandbox Code Playgroud)

和一个重载(非成员)operator+:

MyClass operator+(MyClass m1, const MyClass& m2);
Run Code Online (Sandbox Code Playgroud)

这使我能够编写如下代码:

MyClass m;
5 + m:
Run Code Online (Sandbox Code Playgroud)

我想通过定义的构造函数使用隐式强制转换,对吗?

有没有办法用构造函数接受2个参数进行隐式转换?代码看起来像这样:

MyClass m;
{15, 8} + m:
Run Code Online (Sandbox Code Playgroud)

或者只是从{9,4}到MyClass对象进行显式演员?

Oli*_*rth 5

总之,没有.最简洁的选择是MyClass(15,8) + m;.