Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何重载opAssign运算符“;“全球范围内”;在C++;_C++_Operator Overloading - Fatal编程技术网

C++ 如何重载opAssign运算符“;“全球范围内”;在C++;

C++ 如何重载opAssign运算符“;“全球范围内”;在C++;,c++,operator-overloading,C++,Operator Overloading,只是好奇如何让他们超负荷工作 opAssign运算符类似于addAssign(+=)和subAssign(-=) “全局”意味着它们不作为成员函数重载,而只是一个作用于操作数的运算符 对于这些opAssign运算符,它们是二进制运算符。(它们接收两个操作数) 因此,需要两个参数 我在网上找不到任何例子……这里有一个定义操作符+=的小例子: struct Foo{ int x; }; Foo& operator+=(Foo& lhs, const Foo& rhs

只是好奇如何让他们超负荷工作

opAssign运算符类似于addAssign(+=)和subAssign(-=)

“全局”意味着它们不作为成员函数重载,而只是一个作用于操作数的运算符

对于这些opAssign运算符,它们是二进制运算符。(它们接收两个操作数) 因此,需要两个参数


我在网上找不到任何例子……

这里有一个定义
操作符+=
的小例子:

struct Foo{
    int x;
};

Foo& operator+=(Foo& lhs, const Foo& rhs) {
    lhs.x += rhs.x;
    return lhs;
}

下面是一个定义
运算符+=
的简单示例:

struct Foo{
    int x;
};

Foo& operator+=(Foo& lhs, const Foo& rhs) {
    lhs.x += rhs.x;
    return lhs;
}

赋值运算符(=)是特殊的,它总是需要按照C++标准的“{5.5.3赋值”作为非静态成员函数。

赋值运算符应由一个具有一个参数的非静态成员函数实现

函数调用运算符和下标运算符也是如此。其他“赋值”运算符(+=,-=,*=等)可以是自由二进制函数。

< P>赋值运算符(=)是特殊的,因为它总是需要是一个非静态成员函数,如C++标准的“{5.5.3赋值”。< /P> 赋值运算符应由一个具有一个参数的非静态成员函数实现


函数调用运算符和下标运算符也是如此。其他的“赋值”操作符(+=、-=、*=,等等)可以是自由的二进制函数。

ASFAIU Bosslaw询问的是将赋值与其他操作相结合的操作符(
++=
等),而不是纯粹的赋值(
=
)。ASFAIU Bosslaw询问的是将赋值与其他操作相结合的操作符(
+=
等),而不是纯粹的赋值(
=
)。