首頁 >後端開發 >C++ >如何在 C 中存取模板化父類別的繼承變數?

如何在 C 中存取模板化父類別的繼承變數?

DDD
DDD原創
2024-12-20 10:34:16776瀏覽

How Can I Access Inherited Variables from Templated Parent Classes in C  ?

從模板化父類訪問繼承變數

針對模板化父類中變數可訪問性的詢問,有必要澄清一下:現代GNU C編譯器,從3.4.6版本開始,嚴格遵守C標準。它規定模板中的非限定名稱始終是非依賴的。因此,由於依賴基類專門化的未知性質,在模板定義時解析這些名稱變得不可行,例如在提供的程式碼片段中:

此行為源於在模板定義期間識別不合格名稱的要求。模板定義,由於未來潛在的專業化,這對於依賴基類是不可能的。因此,嘗試在“Bar”的“Perna”方法中存取未限定的受保護變數“a”將導致錯誤。

要規避此限制,需要使用限定名稱「Foo」 ;::a' 明確引用繼承的變數。或者,可以使用「using」宣告來引入非限定名稱:

此外,在基底類別中宣告的非限定函數名稱也受此限制。若要存取此類函數,必須使用限定名稱或提供“using”聲明。

以上是如何在 C 中存取模板化父類別的繼承變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn