ciao.
ho la seguente classe:
[code]
class CRelAssociatedMaterial
: public CBaseIfc
{
public:
CRelAssociatedMaterial(void);
virtual ~CRelAssociatedMaterial(void);
bool GetData(wstring tag, wstring value, int pos, CBaseIfc** pIfcValue);
void SetData( CBaseIfc* pData, int pos);
CMaterialLayerSetUsage* GetMaterialLayerSetUsage();
wstring GetType();
static std::map<wstring, CMaterialLayerSetUsage* > m_mapMaterialsIfc;
private:
bool m_bHasData;
wstring m_Name;
wstring m_Description;
CMaterialLayerSetUsage* m_materialLayerSetUsage;
};
[code]
ho dichiarato(non so se è un errore) la variabile membro:
static std::map<wstring, CMaterialLayerSetUsage* > m_mapMaterialsIfc;
all interno del .cpp relativo assegno gli elementi con :
if(pData->GetType().compare(L"IfcMaterialLayerSetUsage")==0 )
CRelAssociatedMaterial::m_mapMaterialsIfc[pData->GetID()] = elemento;
ma quando compilo il progetto mi da quest errore che se tolgo quest ultima linea scompare
questo è l'errore indecifrabile:
CmpImportApi error LNK2001: unresolved external symbol "public: static class std::map<class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >,class CMaterialLayerSetUsage *,struct std::less<class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > >,class std::allocator<struct std:air<class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const ,class CMaterialLayerSetUsage *> > > CRelAssociatedMaterial::m_mapMaterialsIfc" (?m_mapMaterialsIfc@CRelAssociatedMaterial@@2V?$ma p@V?$basic_string@GU?$char_traits@G@std@@V?$alloca tor@G@2@@std@@PAVCMaterialLayerSetUsage@@U?$less@V ?$basic_string@GU?$char_traits@G@std@@V?$allocator @G@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_st ring@GU?$char_traits@G@std@@V?$allocator@G@2@@std@ @PAVCMaterialLayerSetUsage@@@std@@@2@@std@@A)
perchè?
ho letto che le variabili statiche hanno come scope il file in cuisono dichiarate , ci sono degli svantaggi ad utilizzare una variabile static globale?
come mi consigliate di fare?
grazie.

air<class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const ,class CMaterialLayerSetUsage *> > > CRelAssociatedMaterial::m_mapMaterialsIfc" (?m_mapMaterialsIfc@CRelAssociatedMaterial@@2V?$ma p@V?$basic_string@GU?$char_traits@G@std@@V?$alloca tor@G@2@@std@@PAVCMaterialLayerSetUsage@@U?$less@V ?$basic_string@GU?$char_traits@G@std@@V?$allocator @G@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_st ring@GU?$char_traits@G@std@@V?$allocator@G@2@@std@ @PAVCMaterialLayerSetUsage@@@std@@@2@@std@@A)
Rispondi quotando
