Addition関数は のメンバーであるため、次のVectorように呼び出す必要があります。
c = Vector::Addition(a, b);
また
c = a.Addition(b);
Addition最初のものは関数がstaticである必要があることに注意してください。つまり、具体的なインスタンス (this関数本体内) で動作しないことを意味します。
static Vector Addition(Vector a, Vector b);
ただし、ポインターにアクセスできないthisため、コピーを取得する代わりにデフォルト構築する必要がtempあります(ちなみに、上書きxしてから使用されていませyん)。
2 つ目は、左側のオペランドをthis実装内のポインタとして使用します (aシグネチャにはありません)。
Vector Addition(Vector b)
{
Vector temp = *this;
temp.x += b.x;
temp.y += b.y;
return temp;
}
C++でも演算子をオーバーロードできることに注意してください。このために、2 番目のインスタンスを取る非静的メンバー関数を定義しoperator+ます (最初のインスタンスはthis関数内のポインターで、左側のオペランドになります)。
Vector operator+(const Vector &other) const;
実装 (1 つの可能性):
Vector Vector::operator+(const Vector &other)
{
Vector temp = *this;
temp.x += other.x;
temp.y += other.y;
return temp;
}