【发布时间】:2019-09-19 12:21:22
【问题描述】:
我无法理解运算符重载中的范围运算符。当他们不使用它时,有一些例子。当我应该写T::operator.时我可以只写操作符仍然可以正常工作还是建议使用::?
例子:
原型示例(用于 T 类) 内部类定义
T& T::operator +=(const T2& b){}
我可以写成T& operator +=(const T2& b){}
还是我应该一直写成T& T::operator +=(const T2& b){}
【问题讨论】:
-
如果你将定义放在一个类中,你不需要告诉编译器它属于哪个类。如果你在类之外定义它,编译器没有任何线索,除非你通过
T::明确告诉它。 -
你问什么时候需要
T::name_of_member_function? -
"operator +=" 只是一个时髦的名字。在声明和定义中,它的工作方式与任何其他函数完全相同。
-
@NathanOliver T::operator +=
-
你能提供一个minimal reproducible example吗?
标签: c++ oop operator-overloading scope-resolution-operator