首頁 > 後端開發 > C++ > c++中const和static的區別

c++中const和static的區別

下次还敢
發布: 2024-05-01 10:54:17
原創
1163 人瀏覽過

const 修飾符表示常數,值不可修改;static 修飾符指示變數的生存期和作用域。 const 修飾的資料成員在初始化後不可修改,static 修飾的變數在程式啟動時初始化,在程式結束時銷毀,即使沒有活動物件也會存在,並且可以跨函數存取。 const 修飾局部變數必須宣告時初始化,static 修飾的局部變數可以稍後初始化。 const 修飾類別成員變數必須在建構函式或初始化清單中初始化,static 修飾的類別成員變數可以在類別外部初始化。

c++中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中文網其他相關文章!

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