C++ で、 class のオブジェクトを返すメンバー関数と、 class のオブジェクトを返すメンバー関数を持つように、A
と と呼びましょう。B
A
f
B
B
g
A
(以下のテキストは、「宿題をした」ことを示すためのものです。)
問題は、最初に定義されたクラスの関数の戻り値の型が不完全な場合に、これらの関数の署名を記述する方法です。オブジェクトは値によって返されるため、前方宣言はここでは役に立ちません。
はい、私はすべての回避策を知っています (フレンド グローバル関数、ポインターで返すなど)。ただし、上記のインターフェイスを C++ で実装できるかどうかを知りたいだけです。例として、クラスで operator() を return にオーバーロードし、クラスでA
returnにオーバーロードしようとしているとします。私は演算子をオーバーロードしているので、値で返す必要があります (まあ、動的割り当て地獄が必要でない限り:)、() はメンバー関数としてオーバーロードする必要があるため、グローバル フレンドを使用できません。B
B
A