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