簡體   English   中英

Qt中的c++繼承基礎

[英]c++ Inheritance Basics in Qt

我想用一個附加屬性擴展一個類,然后將一個基類對象分配給這個新類。 這是我的示例代碼:

class QExtFileInfoList: public QFileInfoList
{
  public:
    bool newProperty;
}
QDir var1 = "/abc/def";
QFileInfoList var2 = var1.entryInfoList();     // works
QExtFileInfoList var3 = var1.entryInfoList();  // does not work

代碼返回:

conversion from 'QFileInfoList {aka QList<FileInfo>}' 
      to non-scalar type 'QElfFileInfoList' requested

我該如何解決這個問題?

您已經定義了一個新類。 但是誰在創造它們? QDir 不會為您創建您創建的類。

有3種解決方案:

  1. 將轉換函數 QFileInfoList 寫入 QElfFileInfoList
  2. 為 QElfFileInfoList 編寫一個構造函數,只使用 QFileInfoList 引用(如果您要求轉換單個實例,這將自動轉換)
  3. 從 QDir 派生一個新類,它正在為您創建自己的類。

我會按這些順序選擇它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM