Probleme mit Sizeof und Ableitung

Andreas Roth <[email protected]>
Newsgroups gmane.linux.suse.programming
Message-ID <[email protected]>
Hallo,

ich werd leider nicht mehr schlau daraus.
Ich hab folgende Klassen Konstellation:

class xplObject
{
...
};

class xplSocket : public xplObject
{
...
// Attributes
protected:
	xplSimpleSocket			m_socket;
	
	long						m_lSocketEventMask;

	// Recv Buffer
	xplBuffer				m_buf;
	DWORD					m_dwReceived;

	typedef std::vector<xplSocketTransfer*>		CSocketTransferVector;
	typedef std::map<HANDLE,xplSocketTransfer*>	CSocketTransferMap;
	CSocketTransferVector	m_vecTransfers;
	CSocketTransferMap		m_mapTransfers;
	xplCriticalSection		m_csTransfers;
	xplSocketTransfer			m_recvTransfer;

	// Status
	bool					m_bConnected;
	SOCKETTYPE				m_typeSocket;
};

class CSampleSocket : public xplSocket
{
...
// Keine weiteren Variablen
};

Wenn ich nun in xplSocket::xplSocket ein sizeof(xplSocket) bekomme ich 0xC8 
zurueck.
Wenn ich sizeof(CSampleSocket) bekomm ich (nur) 0xC0 zurueck.
Nach meinem Verstaendnis von C++ sollte doch eine abgeleitetes Klasse 
mindestens groesser sein als ihre Basisklassen! Aber genau das scheint in 
diesem Fall nicht zu passen.

Diese Problem fuehrt im weiteren Programm dazu, dass der selbe Speicher fuer 
zwei Variablen verwendet wird und dann das Programm sich verabschiedet.

Kennt jemand dieses Phaenomen? Woran kann das liegen?
Vielleicht ein Bug im Compiler (SuSE 9.3, GCC 3.3.5, AMD64)?

Vielen Dank fuer eure Hilfe,
Andreas

-- 
Um die Liste abzubestellen, schicken Sie eine Mail an:
    [email protected]
Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.