3つのヘッダーファイル間に3方向の循環依存関係があり、それぞれに1つのクラスがあります。これは、Agent2
クラスの関連部分です。
#ifndef BUYINGJEANS1_H
#define BUYINGJEANS1_H
class Agent2{
public:
Agent2(){}
double getAdvertisingFash(int currentTime, int sFash, int brand){
Agent1 agent1;
Agent3 agent3;
double probabilityOfChangingFashion = (exp((-advertisementArray[currentTime+1][brand]*pow(abs(min(fashionArray[brand]+1,4.0)-sFash),D))+(-alphaArray[2][2]*pow(abs(fashionArray[brand]-sFash),AArray[2][2]))) * (exp((-(agent1.alphaArray[2][1])*pow(abs((agent1.fashionArray[brand])-sFash),AArray[2][1]))))*(exp((-(agent3.alphaArray[2][3])*pow(abs((agent3.fashionArray[brand])-sFash),AArray[2][3])))))/getZScoreAdvertisingFash(currentTime,brand);
return probabilityOfChangingFashion;
}
#endif
とを使用する以外は、Agent1
とクラスに同等の関数が存在し、とを使用します。Agent3
Agent1
Agent2
Agent3
Agent3
Agent1
Agent2
Agent2
明らかにクラスとのメンバーを使用する必要があるため、ここでは前方宣言が機能しないことを知っていますAgent3
。このコードを使用する別のcppファイルでmain関数を実行すると、およびの未宣言の識別子エラーが発生しAgent1
ますAgent3
。
可能な限り簡単な方法でこれを解決する方法を知っている人はいますか?