我有以下頭文件。錯誤:字段'm_ssmmap'具有不完整類型C++
#ifndef __ROUTERPIM__
#define __ROUTERPIM__
#include "AbstractRouterVRF.h"
class VRF;
class SSMMap;
class RouterPim: public AbstractRouterVRF{
private:
string m_rp_address;
unsigned int m_hello_timer;
SSMMap m_ssmmap; //>> line of error
public:
RouterPim();
RouterPim(VRF *vrf);
virtual ~RouterPim();
void setrp_address(string rp_address);
void sethello_timer(unsigned int hello_timer);
string getrp_address();
unsigned int gethello_timer();
static RouterPim* instantiateRouterPim(VRF *vrf);
virtual string getclass_name();
virtual void dump();
virtual int validation(DCMENUMS *attr, void *new_value);
virtual int update(DCMENUMS *attr, void *value);
static string getAttributeStr(int attr);
};
#endif /* __ROUTERPIM__ */
在編譯時,它是在13行
`RouterPim.h:13:10: error: field ‘m_ssmmap’ has incomplete type`
`SSMMap m_ssmmap;`
^
當我註釋掉線13條,它只是編譯好給下面的錯誤。任何人都可以指出我有什麼問題嗎?爲什麼在外部類VRF
中看不到相同的問題,該問題的使用方式與SSMMap
類完全相同。
你只有轉發聲明'SSMMap'。爲了分配'SSMMap m_ssmmap',編譯器需要知道需要分配多少空間。要做到這一點需要看到它的完整定義。 –
這裏有趣的是指出'SSMMap'和'VRF'之間的區別。 – Wolf