首頁 > 後端開發 > C++ > 如何在 C 中正確定義靜態常數整數類別成員?

如何在 C 中正確定義靜態常數整數類別成員?

Barbara Streisand
發布: 2024-12-01 08:29:11
原創
563 人瀏覽過

How Do I Properly Define Static Const Integer Class Members in C  ?

在類別定義中定義靜態常數整數成員:探索

C 允許在類別定義中宣告靜態常數整數成員。然而,理解這種情況下初始化和定義之間的區別至關重要。

在提供的範例程式碼中:

class test
{
public:
    static const int N = 10;
};
登入後複製

類別中 N 的聲明將其初始化為值10. 然而,這並不等同於定義。要解決遇到的連結器錯誤,需要在類別定義之外單獨定義 N。這可以透過命名空間範圍定義來實現,例如:

const int test::N = 10;
登入後複製

或者,constexpr 關鍵字可用於在一個步驟中聲明和定義靜態const 整數成員,從而無需單獨的定義:

class test
{
public:
    static constexpr int N = 10;
};
登入後複製

在呼叫std::min 的情況下,它期望透過引用傳遞參數。由於 N 被聲明為靜態常數整數,因此需要對其進行定義以通過引用要求。註解掉對 std::min 的呼叫允許程式碼編譯,因為不再需要 N 的定義,儘管它仍然被引用。

總而言之,而 C 允許在內部初始化靜態 const 整數成員類別定義中,需要單獨的定義來引用該值。這可以透過命名空間範圍定義或使用 constexpr 關鍵字來實現。

以上是如何在 C 中正確定義靜態常數整數類別成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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