フレンドオペレータのオーバーロードについて混乱します。ヘッダーファイル内にfriend演算子のオーバーロード関数を書くと問題はありませんが、関数をクラスファイルに移動すると次のエラーが表示されます。私はいくつかのサンプルを探知し、彼らはすべてヘッダファイルに関数を書いた。私は何を間違えたのですか?ありがとう。あなたが取得しているエラーメッセージからC++フレンドオペレータ+オーバーロード
...: error: expected ‘,’ or ‘...’ before ‘&’ token
...: error: ISO C++ forbids declaration of ‘statisticain’ with no type
...: error: ‘main_savitch_2C::statistician operator+(int)’ must have an argument of class or enumerated type
// a.h
class A
{
public:
friend A operator + (const A &a1, const A &a2);
};
// a.cpp
#include "a.h"
A operator + (const A &a1, const A &a2)
{
//
}
このコードは問題なく機能します。 **実際の**コードはどのように見えますか? –
誰もがオペレータ+を正しくオーバーロードする方法についてアドバイスをしているので、[こちらの](http://codepad.org/8E9m5A7a)私のアドバイス。 –