-1
我有問題,我的掘進類的Qt的QByteArray掘進類
class Myclass:public QByteArray
{
public :
Myclass();
}
Myclass::Myclass()
:QByteArray()
{
}
當我試圖把MYCLASS作爲QByteArray中的問題:MYCLASS TT( 「fooo」);
我有問題,我的掘進類的Qt的QByteArray掘進類
class Myclass:public QByteArray
{
public :
Myclass();
}
Myclass::Myclass()
:QByteArray()
{
}
當我試圖把MYCLASS作爲QByteArray中的問題:MYCLASS TT( 「fooo」);
它看起來像你沒有一個C字符串參數的構造函數。
構造函數不是繼承的,您必須將所需的每個構造函數都添加到您的類中,即使您只是要調用超類構造函數而沒有別的。
例子:
MyClass::MyClass(const char *cstr) : QByteArray(cstr) {}
thaks沒關係,我通過構建兩個構造函數來解決 – alrawab
您應該添加你的錯誤! – hyde
從QByteArray繼承是沒有意義的:它的析構函數是非虛擬的,它沒有虛擬方法,所以沒有什麼可以重新實現。如果你傳遞一個Myclass對象而不是一個QByteArray,它將被分割,如果你刪除了一個實際上是Myclass的QByteArray *,你可能會泄漏內存。如果您想添加功能,最好將QByteArray設置爲您類的成員,或者使用將QByteArray作爲參數的自由函數。 –
@alrawab我建議聽到上面的警告。 Qt中的大部分「數據」類都不意味着被繼承。 – UmNyobe