TDM Geschrieben 17. November 2006 Geschrieben 17. November 2006 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.) Zitieren
Klotzkopp Geschrieben 17. November 2006 Geschrieben 17. November 2006 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. Zitieren
TDM Geschrieben 17. November 2006 Autor Geschrieben 17. November 2006 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 ? Zitieren
TDM Geschrieben 17. November 2006 Autor Geschrieben 17. November 2006 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; Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.