如果我想使用"a = {x,y};",那么要重载哪个运算符

Joh*_*ung 1 c++ overloading operator-keyword

我正在创建自己的课程,我希望能够像标题一样启动它.

a = {x, y};
Run Code Online (Sandbox Code Playgroud)

我无法找到任何指示我如何做到这一点.

Jos*_*eld 5

假设您实际上希望能够以这种方式分配(而不是初始化),则需要重载operator=,但其参数类型完全取决于大括号中的列表所代表的内容.

例如,如果您总是要传递一对值,那么您可以使用以下内容进行operator=重载std::pair:

A& operator=(std::pair<int, int>);
Run Code Online (Sandbox Code Playgroud)

这可以像这样调用:

A a;
a = {5, 3};
Run Code Online (Sandbox Code Playgroud)

如果您希望能够传递任意长度列表,则可以将参数类型设置为std::initializer_list:

A& operator=(std::initializer_list<int>);
Run Code Online (Sandbox Code Playgroud)

现在以下所有情况都可以:

a = {};
a = {1, 2};
a = {5, 3, 5, 2, 3};
Run Code Online (Sandbox Code Playgroud)