C++中五花八門的初始化

總結

  • 初始化的概念:創建變量時賦予它一個值(不同於賦值的概念)
  • 類的構造函數控制其對象的初始化過程,無論何時隻要類的對象被創建就會執行構造函數
  • 如果對象未被用戶指定初始值,那麼這些變量會被執行默認初始化,默認值取決於變量類型和定義變量的位置
  • 無論何時隻要類的對象被創建就會執行構造函數,通過顯式調用構造函數進行初始化被稱為顯式初始化,否則叫做隱式初始化
  • 使用等號(=)初始化一個類變量執行的是拷貝初始化,編譯器會把等號右側的初始值拷貝到新創建的對象中去,不使用等號則執行的是直接初始化
  • 傳統C++中列表初始化僅能用於普通數組和POD類型,C++11新標準將列表初始化應用於所有對象的初始化(但是內置類型習慣於用等號初始化,類類型習慣用構造函數圓括號顯式初始化,vector、map和set等容器類習慣用列表初始化)

初始化不等於賦值

初始化的含義是創建變量時賦予其一個初始值,而賦值的含義是把對象的當前值擦去,並用一個新值替代它。

C++定義瞭初始化的好幾種不同形式,例如我們定義一個int變量並初始化為0,有如下4種方式:

int i = 0;
int i = {0};
int i{0};
int i(0);

发表回复

相关推荐

魚男的感情

這次,我想說一說關於魚男的感情,確切是說是在感情上的一些看法觀點。經過我和許多不同的人交流得出來,雙魚這個星座,不管...

· 29秒前

公益慈善|捐頭發做公益,正規機構怎麼找?

「本文首發於“ 李潔 Li Jie”公眾號,ID“lijie_philanthropy”,學慈善,做公益,關註我,一起知益行益」前兩天刷到一條視頻,B...

· 2分钟前

天然珍宝夜明珠-精品鉴赏

夜明珠是夜间发光的天然珍宝,在中国历史上数千年来广为流传在哲学、经济、政治、文化、诗歌、小说、珠宝等各个领域内赋予了 ...

· 2分钟前

泥工貓膩居然這麼多!細數你不知道的註意事項!

在我們裝修過程中大傢最早接觸的就是泥工,那麼什麼才算是好的拆建墻體和瓷磚鋪貼呢?在這兩塊工藝中,會遇到那些“翻車”風險...

· 3分钟前

保险起源和中国保险史

不知从啥时候开始,经常听到的就保险都是骗人的,买保险已经约等于上当受骗了。

· 3分钟前