Seite 1 von 1

qobject_cast mit von QTcpSocket abgeleiteter Klasse

Verfasst: 2. Februar 2008 21:49
von User
Hi,

ich habe eine Klasse von QTcpSocket abgeleitet:

Code: Alles auswählen

#include <Qtnetwork>

class PlaySocket : public QTcpSocket
{
	Q_OBJECT
public:
	PlaySocket(QObject* parent = 0);
};
Mein Problem ist nun, dass jeder Cast der Form

Code: Alles auswählen

PlaySocket* clientConnection = qobject_cast<PlaySocket*>(playServer->nextPendingConnection());
einen Nullpointer liefert. was mache ich beim casten falsch?

Verfasst: 2. Februar 2008 22:22
von upsala
Ein qobject_cast ist eigentlich ein dynamic_cast. Und ein QTcpSocket kann man so nicht eine Klasse casten die davon abgeleitet ist.

Verfasst: 2. Februar 2008 23:25
von User
Stimmt, das habe ich eben auch in der QT Referenz und einem C++ - Tutorial gelesen. Ich hatte vorher gedacht, qobject_cast bzw. dynamic_cast seien eben dazu da, um Downcasts zu ermöglichen. Offenbar sind genau diese damit nicht möglich. Gibt es überhaupt einen Weg, diesen Cast vorzunehmen?