0

cpp ファイルにインライン演算子のオーバーロードがあります。私の理解では、インライン関数も関数の本体を含むヘッダー ファイルに配置する必要があります。

しかし、私がそれをするとき。「演算子==」の再定義であるエラーが出ます

なぜそのようなエラーになるのか説明していただけますか。また、ヘッダー ファイルに保持する必要があるコンテンツの種類を誰か説明できますか?

inline bool operator ==(Duration& d1, Duration& d2)
{

   return d1.getSecond() == d2.getSecond();
}
4

2 に答える 2

3

関数を 2 回定義することはできません。ヘッダーで宣言し、cpp で定義します。または、ヘッダーで定義し、cpp から完全に除外します。

于 2012-12-10T17:56:32.843 に答える
2

インライン関数は、ソースではなくヘッダーに入れる必要があります。そうしないと、それらを呼び出そうとする他のソースで使用できなくなります。

ソースに 2 番目のコピーがあることは、実際には重複です。

于 2012-12-10T17:56:54.727 に答える