2013-01-06 49 views
-1

我有問題,我的掘進類的Qt的QByteArray掘進類

class Myclass:public QByteArray 
{ 
public : 
Myclass(); 
} 

Myclass::Myclass() 
:QByteArray() 
{ 


} 

當我試圖把MYCLASS作爲QByteArray中的問題:MYCLASS TT( 「fooo」);

+0

您應該添加你的錯誤! – hyde

+2

從QByteArray繼承是沒有意義的:它的析構函數是非虛擬的,它沒有虛擬方法,所以沒有什麼可以重新實現。如果你傳遞一個Myclass對象而不是一個QByteArray,它將被分割,如果你刪除了一個實際上是Myclass的QByteArray *,你可能會泄漏內存。如果您想添加功能,最好將QByteArray設置爲您類的成員,或者使用將QByteArray作爲參數的自由函數。 –

+0

@alrawab我建議聽到上面的警告。 Qt中的大部分「數據」類都不意味着被繼承。 – UmNyobe

回答

0

它看起來像你沒有一個C字符串參數的構造函數。

構造函數不是繼承的,您必須將所需的每個構造函數都添加到您的類中,即使您只是要調用超類構造函數而沒有別的。

例子:

MyClass::MyClass(const char *cstr) : QByteArray(cstr) {} 
+0

thaks沒關係,我通過構建兩個構造函數來解決 – alrawab