Zum Inhalt springen

string in Klassenmemberstruktur


Empfohlene Beiträge

Geschrieben

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.)

Geschrieben

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.

Geschrieben

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 ?

Geschrieben

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;

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...