首頁 > 後端開發 > C++ > 主體

我們如何以及為什麼在類別定義之外初始化靜態資料成員?

Mary-Kate Olsen
發布: 2024-11-06 07:30:02
原創
783 人瀏覽過

How and Why Do We Initialize Static Data Members Outside the Class Definition?

靜態資料成員初始化和定義

靜態資料成員,例如提供程式碼中的變數“i”,在初始化期間需要特殊處理。了解初始化器(分配值)和定義(聲明變數存在)之間的差異非常重要。

初始化器和定義

在程式碼範例中,靜態資料成員「i」在類別定義之外初始化。這是一項要求,因為定義必須為變數提供記憶體中的位址,而該位址無法在類別定義本身內確定。

另一方面,初始化程序只是將值指派給變數而不指定其值位址。這允許一種簡潔的方法在一個地方設定初始值,避免需要在建構函數中重複它。

非靜態資料成員

非靜態資料成員,如「normalValue」 」 在範例中,存在於類別的實例中。它們的位址取決於它們所屬的實例。因此,非靜態資料成員定義是在建立實例時建立的。唯一的位址,連結器需要為每個靜態資料成員精確定義一個定義。以外的定義

要解決此問題,靜態資料成員定義必須是放置在類別宣告之外。

與外部變數的類比

在類別外部定義靜態資料成員的概念類似於聲明外部變數。資料成員聲明可以視為extern 聲明,實際的定義單獨提供。

以上是我們如何以及為什麼在類別定義之外初始化靜態資料成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!