我將通過示例更好地形成問題。從指向基礎對象的指針初始化派生對象
我想延長Qtcpsocket
的defult執行方式如下:
class NumberedTcpSocket : public QTcpSocket
{
Q_OBJECT
public:
NumberedTcpSocket(QObject *parent=0);
int number;
};
我在這裏做的唯一的事情是添加一個int number
領域的與QTcpSocket默認實現。我需要這個枚舉打開的套接字。
但是,其餘的網絡類使用,或返回Qtcpsocket
。這並不重要,我做的改變很小。
我願做這樣的事情:
NumberedTcpSocket *clientConnection = returnsPointerToQTcpSocket();
clientConnection->number = predefined_number;
什麼樣的鑄造需要在這種情況下做什麼?它是否包含對NumberedTcpSocket
的構造函數的更改?
如果確實知道'returnsPointerToQTcpSocket()'返回'NumberedTcpSocket'對象,那麼使用'static_cast'就足夠了。 –
vahancho
'returnsPointerToQTcpSocket()'返回一個'* Qtcpsocket'。 – TheMeaningfulEngineer
是的,我明白了,但我的意思是對象的類型,而不是指向該對象的指針的類型。 – vahancho