で次の関数が定義されていchess_location.h
ます。
inline chess_location operator+(chess_location lhs, const chess_coord& rhs);
そして、でchess_location.cpp
:
#include "chess_location.h"
chess_location operator+(chess_location lhs, const chess_coord& rhs) {
//function definition
}
そして、次のように、 my main()
inでこの演算子を使用しています。main.cpp
#include "chess_location.h"
int main() {
chess_location_B = chess_location_A + chess_coord;
}
しかし、演算子が見つからないというリンカ エラーが表示されます。
error LNK2019: unresolved external symbol "class chess_location __cdecl operator+(class chess_location,class chess_coord const &)" (??H@YA?AVchess_location@@V0@ABVchess_coord@@@Z) referenced in function _main
リンカーが演算子の宣言を定義に接続していないように思えますが、その理由はわかりません。私は自分の体に何か問題があるのではないかと疑っていconst
ます。ただし、演算子の定義を に移動するmain.cpp
と、すべてがコンパイルされ、正常に動作します。
このエラーの原因はどこにありますか?