私は基本的に、関数がオブジェクトオブジェクトを使用し、オブジェクトが上記関数を使用する循環依存関係の問題があります。この問題を回避する方法はありますか?私はこの例を理解関数はオブジェクトとオブジェクトを使用して関数を使用します
//function that uses struct
void change_weight(Potato* potato,float byX) { potato->weight+=byX; }
//said struct that uses said function
struct Potato
{
float weight=0.0;
Potato(float weightin) { change_weight(weightin); }
};
注意愚かであるが、この例では唯一、私は時々、私はそれを回避するか、だろうか分からないでしょうはるかに複雑な状況に来ている「問題の本質」が含まれていたとえそれが働くことができたとしても、それを行うことができれば非常に便利です。私はこれを行う方法がある場合はなしで尋ねています。
のみ 宣言構造定義でコンストラクタ、構造の外に定義を移動し、一緒に機能し、それを置き、 以下の構造定義
通常の.hと.cppファイルの間の宣言と実装。 – Quentin
コードは単なる例に過ぎませんが、かなり悪いです。:)関数はメンバー関数としてうまく適合します。 –
@JoachimPileborg答え: "この例はばかげているが、この例では、問題の本質が含まれているだけで、時には私がそれを回避する方法がわからない、もっと複雑な状況になっていることに注意してくださいまたはそれが " –