【发布时间】:2023-03-03 17:37:01
【问题描述】:
我正在实现矢量类,我需要得到一些矢量的对立面。是否可以使用运算符重载来定义这种方法?
这就是我的意思:
Vector2f vector1 = -vector2;
这是我希望该运算符完成的任务:
Vector2f& oppositeVector(const Vector2f &_vector)
{
x = -_vector.getX();
y = -_vector.getY();
return *this;
}
谢谢。
【问题讨论】:
-
风格注释:不要在变量前加上''。这种风格是为实现(编译器)保留的,你可能会有冲突。此外,由于 '' 前缀,读者无意中将您的变量识别为实现变量。您不需要在函数内部使用“_”;没有它,它们将是可读的。
-
两个下划线保留用于实现,而不仅仅是一个。
-
我相信是_MACROs和__identifiers。
-
请告诉我你为什么在简单的 Vector 类型上使用
.getX()和.getY() -
要成为precise:带有两个后续下划线anywhere的标识符被保留-always,以下划线后跟一个大写字母开头的标识符是总是保留,任何以下划线开头的标识符都保留在全局命名空间。