【发布时间】:2012-02-17 05:50:54
【问题描述】:
我不太擅长 C++,但我的任务是创建一个使用大量运算符重载的自定义 Vector 类。我很难掌握如何做其中之一。 该类应提供以下功能:
v3 = v2 * 2.0f;
v3 = 2.0f * v2;
我通过重载 * 运算符成功实现了第一个。我不确定如何进行第二个。我知道我需要再次重载 * 运算符,但我认为它不应该在我的向量类中。我的教授解释的那天我没上课,后来我和他谈话时,他提到它需要在课外。问题是我不知道这将如何工作。任何指导都会很棒!
编辑-
@Fede_Reghe 这对我来说很有意义,但是当我添加它时,我现在从编译器收到此错误: Vector.h:64:错误:将“const Vector”作为“float Vector::operator”的“this”参数传递会丢弃限定符
在标题中,这两行引用了 * 重载。 向量运算符 * (float); 朋友向量运算符*(float, const Vector&);
然后我重载了 [] 以便它返回 x、y 或 z 值的浮点数。在标题中看起来像这样: 浮点运算符 [] (int);
在类之外,我这样定义朋友 * 重载:
Vector operator * (float f,const Vector& v2)
{
float newX = v2[0] * f;
float newY = v2[1] * f;
float newZ = v2[2] * f;
Vector newVector(newX, newY, newZ);
return newVector;
}
我不完全理解错误消息的含义。
【问题讨论】:
标签: c++