我在三個頭文件之間存在三種循環依賴關係,每個頭文件中都有一個類。這是Agent2
類的相關部分:存在於Agent1
和Agent3
類循環相關性問題
#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
將使用Agent2
和Agent3
,和Agent3
將使用Agent1
和Agent2
。
我知道前向聲明在這裏不起作用,因爲我顯然需要使用類Agent2
和Agent3
的成員。當我在使用此代碼的單獨cpp文件中運行主函數時,我收到Agent1
和Agent3
的未聲明標識符錯誤。
任何人都知道我可以在可能的最簡單的方式解決呢?