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

如何從 C 中的模板化父類別存取繼承的受保護變數?

Patricia Arquette
發布: 2024-11-30 05:30:10
原創
963 人瀏覽過

How Can I Access Inherited Protected Variables from a Templated Parent Class in C  ?

從模板化父類別存取繼承變數

在此程式碼片段中:

較新版本的GNU C 編譯器(例如3.4) .6 和4.3.2)報告錯誤:

在 Bar 特化中存取基類 Foo 的受保護變數 a 時。

標準一致性

較新的 GCC 版本遵循 C 標準,它指定模板中的非限定名稱是非相關的,必須在模板定義期間解析。由於此時可能不知道依賴基底類別的定義,因此無法解析不合格的名稱。

基本原理

防止存取依賴基底類別中的不合格繼承成員可確保範本定義明確並且獨立於其專業化。這確保了模板的語義對於不同的專業化保持一致。

要存取Bar 中繼承的變量,您可以使用限定名稱:

或者,您可以使用using 宣告:

此語法通知編譯器Bar 的作用域引用了Foo 基底類別的a 變數。

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

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