首頁 > 後端開發 > C++ > 如何轉送聲明嵌套 C 類別?

如何轉送聲明嵌套 C 類別?

DDD
發布: 2024-12-04 09:16:11
原創
645 人瀏覽過

How Can I Forward Declare Nested C   Classes?

轉發聲明內部類別

引用巢狀類別而不包含其定義頭檔可能是理想的。但是,嘗試在其包含類別之外轉發聲明內部類別可能會導致編譯錯誤。

考慮以下範例:

class Container {
public:
    class Iterator {
        ...
    };

    ...
};

class Foo {
    void Read(Container::Iterator& it);
};
登入後複製

編譯此程式碼將因不完整而導致錯誤Container 的類型和未聲明的類型

解決方案解決方案

解決方案
  • 不幸的是,不可能在其包含類別之外轉發聲明內部類別。 C 標準不允許這種語法。因此,解決這個問題需要替代解決方案:
  • 將內部類別移到外部:將內部類別聲明為非巢狀類別。這允許它被向前聲明並單獨包含。
  • 重新排序聲明:如果可能,重新排序類別聲明,以便在引用內部類別之前完全定義內部類別。
使用基類:建立一個公共基類,內部類別可以繼承該基類,並且函數可以將其作為參數傳遞。這允許函數接受對基底類別的引用,即使特定的內部類別類型未知。

以上是如何轉送聲明嵌套 C 類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板