Possible Duplicate:
Operator overloading outside class機能は、C++
に私はCと素晴らしいではありませんよ++が、私は演算子オーバーロードの多くを使用するカスタムVectorクラスを作成する使命を帯びてきました。私はそのうちの一つをどうやってやるのか苦労している。 クラスには、次のための機能を提供する必要があります
v3 = v2 * 2.0f;
v3 = 2.0f * v2;
を私は正常に*演算子をオーバーロードすることによって最初のものを実装しました。私はどのように2番目のものについて行くのか分からない。私は*演算子を再度オーバーロードする必要があることを知っていますが、私はベクトルクラスの内側にあるはずがないと思います。私の教授がそれを説明した日、私は授業中に欠席していました。その後私が彼に話したとき、彼はクラスの外にいる必要があると言いました。問題は、どのように動作するのか分かりません。どんな指針も素晴らしいでしょう! Vector.h:64:エラー:「このよう「constのベクトル」を渡して私には理にかなって、私はそれを追加したとき、私は今、コンパイラからこのエラーを取得しています
編集 -
@Fede_Reghe 'float Vector :: operator'の引数は修飾子を破棄します
ヘッダーには、これらの2行が*オーバーロードを参照しています。 ベクトル演算子*(float); friendベクトル演算子*(float、const Vector &);
次に、x、y、z値の浮動小数点数を返すように[]をオーバーロードしました。これはヘッダーで次のようになります。 float operator [](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;
}
:クラスの
外では、私はこのような友人*過負荷を定義しました。