2017-12-26 11 views
-1

この質問は重複したものとは異なります。オブジェクトのない別のクラスのメンバ関数を使用して静的を避ける

私は2つのクラスAとBを持っています。Bには変数bを使用するメンバー関数B::boyがあります。

Aにはメンバー関数A::evaluateがあり、このメンバー関数ではB::boyを使用する必要があります。

問題は今からである:それは非静的変数bを使用する必要があるため、静的することはできません

1)B::boy

2)私は他の場所Bの一つの目的を持っており、それは可変bを格納するので、私はA.

においても有用であるAにBのオブジェクトをインスタンス化することができない、Cで行われることができない++ ?

+2

'A'オブジェクトを構築するときに' B'オブジェクトへの参照を渡し、その参照を将来使用するために保存する方法はありますか?または、現在のインスタンスと参照の代わりに[共有ポインタ](http://en.cppreference.com/w/cpp/memory/shared_ptr)を使用して(オブジェクトの存続期間を保証する)?あるいは 'A'の関数に(おそらく参照として)' B'オブジェクトを渡すだけですか? –

+0

':: :: boy'を' A :: evaluate'に利用できる方法は複数あります。それは宣言された非静的変数 'b'がどこにあるかによって異なります。 – dasblinkenlight

+0

あなたの質問に完全に答えるために、私はいくつかのコードが必要です –

答えて

0

A::evaluateのパラメータとしてbを渡すか、A内のポインタまたは参照メンバをB(Aクラスの値bの値に応じて)に設定します。

関連する問題