const
預設狀態下const物件僅在檔案內有效,新增extern關鍵字可以在多個檔案共享
const 引用:
可以把引用繫結到const物件上,對常量的引用不能被用作修改它所繫結的物件
const int ci =1024;const &r = ci;//正確
r = 3;//錯誤
int &s = ci;//錯誤,可以通過s來修改常量ci 的值,顯然是錯誤的
int i =42;
const int &r1 = i;//正確
int &r1 = 42; //錯誤
const int &r2 = 42;//正確 r2是乙個常量引用
const int &r3 = r1 * 2; //正確
int &r4 = r1 *2;//錯誤
const 指標:
指標式物件而引用不是,允許把指標本事定為常量
int e = 0;
int *const cur = &e;
從右往左 cur離const最近所以是個常量, const前面有*,所以是常量指標,常量指標指向了乙個int物件
頂層const:
頂層const表示指標本身是個常量,可以表示任意的物件是常量
底層const表示指標所指的物件是個常量
int i =0;int *const p1 = &i; //頂層const
const int ci = 42; //頂層const
const int *p2 = &ci; //底層p2, 允許改變p2的值
const int &r = ci; //用於宣告引用的const都是底層const
C 常見問題
1.預處理 預處理的主要作用就是對資源進行等價替換,最常見的預處理有 檔案包含 include 條件編譯 if,ifndef,ifdef,endif,undef 布局控制 pragma 巨集替換等 define 等。1.1 標頭檔案中放什麼?標頭檔案一般用於類的定義 extern變數和函式的宣告。由...
C 常見問題
問題描述 解決方式 無法解析的外部符號 public cdecl minidl operator operator void 0operator minidl qeaa xz 該符號在函式 public cdecl minidl denseop denseop void 0denseop minid...
c 常見問題
編譯器總是根據型別來呼叫類成員函式。但是乙個派生類的指標可以安全地轉化為乙個基類的指標。這樣刪除乙個基類的指標的時候,c 不管這個指標指向乙個基類物件還是乙個派生類的對 象,調刪除線格式用的都是基類的析構函式而不是派生類的。如果你依賴於派生類的析構函式的 來釋放資源,而沒有過載析構函式,那麼會有資源...