一、聲明 - declaration
聲明:告訴編譯器某個東西(變量或函數)的名稱和類型,但略去細節。
通俗的講就是:告訴編譯器我這個變量或函數是有的,我要用,只是現在不定義,你先不要給我報錯,定義我后面補上。
比如:
extern int x; //對象object聲明
std::size_t numDigits(int number); //function聲明
class widget; //class聲明
template<typename T>
class GraphNode; //模板template聲明
二、定義 - definition
1.變量的定義:變量的定義用於為變量分配存儲空間,還可以為變量指定初始值。在一個程序中,變量有且僅有一個定義。
聲明和定義兩者聯系與區別:
(1)定義也是聲明(定義是一種特殊的聲明),因為當定義變量時我們也向程序表明了它的類型和名字;
(2)但聲明不是定義,可以通過使用extern關鍵字聲明變量而不定義它。不定義變量的聲明包括對象名、對象類型和對象類型前的關鍵字extern;
(3)程序中變量可以聲明多次,但只能定義一次。
(4)變量聲明:(1)不分配空間 變量定義:(1)分配空間 (2)注意:定義是一種特殊的聲明.
總結來說:
聲明一個變量只是將變量名標識符的有關信息告訴編譯器,使編譯器“認識”該標識符,但聲明不一定引起內存的分配。而定義變量意味着給變量分配內存空間,用於存放對應類型的數據,變量名就是對相應的內存單元的命名。
三、初始化 - initialization
初始化是給對象賦予初值的過程
(1)變量初始化:在定義的同時賦值;(注意,定義之后,再去賦值不叫初始化)
(2)對於類的對象:初始化由構造函數執行。所謂的default構造函數是一個可被調用而不帶任何實際參數者,這樣的構造函數要不沒有參數,要不就是每個參數都有缺省值。
四、賦值
大家都懂的。
————————————————
版權聲明:本文為CSDN博主「博雅勇士」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/boyaaboy/article/details/102676656
