可能性の重複:
What does “operator = must be a non-static member” mean? (C++)C++グローバルオーバーロードされた演算子=
こんにちは、
私は、次のコードを持っている...
// Header file
struct dataRecord{
size_t id;
char name[gcNameLength];
};
void operator=(dataRecord &adr, const dataRecord &bdr);
どのようにこれまでのgcc私にフォローを与えるコンパイル時にエラーが発生する。
error: ‘void operator=(dataRecord&, const dataRecord&)’ must be a nonstatic member function
ありがとうございました。
「非静的メンバ関数である必要があります:あなたは演算子=をオーバーロードするとき、それは流れを中断されませんなどexpressiosができるようになりますので、あなたは、左のオペランドへの参照を返すこと
は注意" - ここではっきりしないことは何ですか? –
この場合、エラーメッセージは非常に正確に問題を伝えています: 'operator ='をオーバーロードしようとするとグローバル関数として実行できません - 非静的メンバ関数グローバルを使用する通常の理由は、左オペランドの変換を許可することですが、それは割り当ての場合は適用されません)。 –
したがって、構造体の一部でなければなりませんグローバルにすることはできません。 – Thomas