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;

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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