static和const的區別:html
static關鍵字的做用:
(1)函數體內static變量的做用範圍爲該函數體,該變量的內存只被分配一次,所以其值在下次調用時仍維持上次的值;
(2)在模塊內的static全局變量和函數能夠被模塊內的函數訪問,但不能被模塊外其它函數訪問;
(3)在類中的static成員變量屬於整個類所擁有,對類的全部對象只有一份拷貝;
(4)在類中的static成員函數屬於整個類所擁有,這個函數不接收this指針,於是只能訪問類的static成員變量。函數
const關鍵字的做用:
(1)阻止一個變量被改變
(2)聲明常量指針和指針常量
(3)const修飾形參,代表它是一個輸入參數,在函數內部不能改變其值;
(4)對於類的成員函數,若指定其爲const類型,則代表其是一個常函數,不能修改類的成員變量;
(5)對於類的成員函數,有時候必須指定其返回值爲const類型,以使得其返回值不爲」左值」。this
儘可能以const,enum,inline 替換#define = 寧肯以編譯器替換預處理器#define ASPECT_RATIO 1.653
指針
define不被視爲語言的一部分,不會被編譯器看見。編譯器開始處理源碼以前,它就被預處理器移走了。因而記號名稱有可能沒進入記號表內,當運用此常量但得到一個編譯錯誤信息時,可能會帶來困惑,由於這個錯誤信息會提到1.653而不是ASPECT_RATIO.code
參考資料:htm
https://www.cnblogs.com/Jinfe...