私はまだC ++にかなり慣れていないので、これが簡単な答えである場合は事前に謝罪します. オーバーロードされた演算子を使用しようとしています。その演算子の署名は次のとおりです。
const Vector3D operator/(const Vector3D& lhs, const double rhs)
そして、これが私がそれを使用しようとしている方法です:
OrthonormalBasis::OrthonormalBasis(const Vector3D &a)
{
Vector3D t;
w = a / a.length();
t = getCollinearVector(w);
//More code goes here
}
コンパイルしようとすると、g++ で次のエラーが返されます。
/file/path/orthonormalBasis.cpp:8: undefined reference to
`operator/(Vector3D const&, double)'
collect2: ld returned 1 exit status
オペレーターは Vector3D.cpp で定義されているので、定義はあります。