Alles rund um die Programmierung mit Qt
User
Beiträge: 16 Registriert: 17. Mai 2007 00:42
Beitrag
von User » 2. Februar 2008 21:49
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?
upsala
Beiträge: 3946 Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:
Beitrag
von upsala » 2. Februar 2008 22:22
Ein qobject_cast ist eigentlich ein dynamic_cast. Und ein QTcpSocket kann man so nicht eine Klasse casten die davon abgeleitet ist.
User
Beiträge: 16 Registriert: 17. Mai 2007 00:42
Beitrag
von User » 2. Februar 2008 23:25
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?