17. November 200619 j Hallo, ich habe das Problem, dass ich eine etwas ... "merkwürdige" Fehlermeldung bei folgender Klasse bekomm class CUser { public: BOOL p_bSetSName(const string& p_lpSName); void p_save(); CUser(); ~CUser(); static CUser* s_p_opagetUsers(); static void s_p_setFileProperties(const SFileProperties_t &p_sNewFileProperties); static int s_p_ncCountUsers(void); private: void m_writeFName(const string&p_lpKey); void m_writeKey(const string&p_lpKey); void m_writeSG(const string&p_lpKey); void m_writeSName(const string& p_lpKey); void m_writeTel(const string&p_lpKey); static SFileProperties_t s_m_seFileProperties; struct { int m_nKey; string m_lpeSName; string m_lpeFName; string m_lpeTel; string m_lpeSG; int m_nCount; } m_seMembers; }; --------------------Konfiguration: CUser - Win32 Debug-------------------- Kompilierung läuft... StdAfx.cpp d:\src\c\w32c\cuser\user.h(37) : error C2639: Vom Compiler angelegter Standardkonstruktor wird von der unbenannten Klasse benoetigt Fehler beim Ausführen von cl.exe. Browse-Informationsdatei wird erstellt... CUser.exe - 1 Fehler, 0 Warnung(en) Kann mir jemand sagen, woran das liegt, dass ich keine string-Objekte in einer internen Struktur verwenden kann ? Sobald ich char* nehm, geht es jedenfalls (ich will mir aber die Pointerarbeit ersparen.)
17. November 200619 j Laut Standard sollte das eigentlich erlaubt sein, vermutlich eine Eigenart des CE-Compilers. Wenn du in einer namenlosen struct/class Member hast, die einen Standardkonstruktor haben (wie z.B. std::string), dann ist dieser Compiler offenbar nicht in der Lage, einen Kontruktor für diese struct/class zu erstellen, vermutlich, weil der dann (genau wie die struct) keinen Namen hätte. Gib dem struct-Typ einen Namen, dann sollte es gehen.
17. November 200619 j Autor Hab ich doch, damit ich auf die Variablen zugreifen kann: [B]struct[/B] { int m_nKey; string m_lpeSName; string m_lpeFName; string m_lpeTel; string m_lpeSG; int m_nCount; } [B]m_seMembers[/B]; Oder wo meinst du ?
17. November 200619 j Autor ok, ich weiß wie du es meintest: struct SValues_t { int m_nKey; string m_lpeSName; string m_lpeFName; string m_lpeTel; string m_lpeSG; int m_nCount; } m_seMembers;
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.