![]() |
1
9
当您将二进制运算符重载为类的成员函数时,当 第一 操作数属于类类型。 对于流运算符,第一个操作数是流,而不是(通常)自定义类。 因此,为以常规方式使用的自定义类重载流运算符不能是自定义类的成员函数,它们必须是自由函数。 (我假设流类是不可更改的;如果是,您可以向流类添加成员函数以处理其他自定义类型,但从依赖关系的角度来看,这通常是不可取的。) 他们是否是朋友应该取决于他们是否需要访问非公开的班级成员。 |
![]() |
2
2
所以你可以说:
注意,成员运算符的定义使左侧的类成为自己的类。例如。:
这不是标准流应该如何工作的。 |
![]() |
3
0
什么班的成员?左侧操作数的类型是什么?
他们不必是
|
![]() |
Noah Wilder · Swift中元组的操作符重载 6 年前 |
![]() |
Salman · 指向具有数组索引运算符重载的类的指针 6 年前 |
![]() |
Nom OnTheCookie · 使用向量重载C++输出 6 年前 |
![]() |
J. Doe · C++重载:从友元函数切换到成员函数 6 年前 |
![]() |
Ana · 使用操作符重载添加存储在vector中的类对象 6 年前 |
![]() |
Matthew · 重载运算符|用于固定大小的阵列? 6 年前 |
![]() |
Martin Žid · 重载运算符+=具有两个类 6 年前 |