const 修飾符表示常數,值不可修改;static 修飾符指示變數的生存期和作用域。 const 修飾的資料成員在初始化後不可修改,static 修飾的變數在程式啟動時初始化,在程式結束時銷毀,即使沒有活動物件也會存在,並且可以跨函數存取。 const 修飾局部變數必須宣告時初始化,static 修飾的局部變數可以稍後初始化。 const 修飾類別成員變數必須在建構函式或初始化清單中初始化,static 修飾的類別成員變數可以在類別外部初始化。
c 中const 和static 的差異
簡單明了的差異:
- const 修飾符表示一個常數,它的值在程式執行期間不能被修改。
- static 修飾符指示一個變數的生存期和作用域。
詳細解釋:
const 修飾符:
- const 用於宣告常數,即不能更改值的變數。
- const 修飾的資料成員只能在類別建構子或初始化清單中初始化。
- const 變數在程式執行期間不能被修改,否則會產生編譯錯誤。
- const 可以套用於物件、指標或參考。
static 修飾符:
- static 用於宣告靜態變量,也就是整個程式中都存在的變數。
- 靜態變數在程式啟動時進行初始化,並且在程式結束時銷毀。
- 靜態變數即使在沒有活動物件時也會存在,並且可以跨函數存取。
- static 可以應用於全域變數、類別成員變數和局部變數。
其他差異:
- const 修飾的資料成員是唯讀的,而 static 修飾的資料成員可以讀寫。
- const 修飾的局部變數必須在宣告時初始化,而 static 修飾的局部變數可以稍後初始化。
- const 修飾的類別成員變數必須在建構子或初始化清單中初始化,而 static 修飾的類別成員變數可以在類別外部初始化。
範例:
<code class="cpp">// const 常量
const int MY_CONSTANT = 10;
// static 全局变量
static int global_count;
// static 类成员变量
class MyClass {
public:
static int static_member;
};</code>
登入後複製
在上述範例中:
- MY_CONSTANT 是一個常數,一旦初始化就無法改變。
- global_count 是一個靜態全域變量,在整個程式中都存在。
- MyClass::static_member 是一個靜態類別成員變量,可以在類別外部存取。
以上是c++中const和static的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!