在c++中const代替#define的操作,當定義乙個const時必須附乙個值給它:const int size = 100;通常c++編譯器不為const建立儲存空間,相反它把這個定義儲存在符號表裡。
常見const的幾種定義區別:
const int a; 或 int const a; a為常量不可更改。
int const* c; 或const int * c; 修飾變數,指標指向的內容(值)不可變。
int* const d; 修飾指標,指標指向的位址不可變。
const int * const d;或int const * const d;指標的位址和內容均不可改變。
修飾函式引數:
1void(const
inti)25
6//為了是理解更加直觀應該在函式內部用const限定,避免呼叫者混淆。78
void(int
ic)9
6.返回const值
對於內建型別來說,返回值是否是乙個const,並不重要。例如
1intf() 25
6const
intg()710
11int
main()
1216
17 都可以正常執行;
7.傳遞和返回位址
1void t(int*i) 23
void u(const
int*cip)49
10const
char*v()
1114
15const
int* const
w()
1620
21int
main()
22
8.類中的const
為了保證乙個類物件為常量,const成員函式只能對於const物件呼叫。如果宣告乙個const型別的成員函式,則該成員函式可以被乙個const物件所呼叫。乙個沒有被明確宣告為const的成員函式被看成是將要修改物件中資料成員的函式,且編譯器不允許被const物件所呼叫。定義const型別的成員函式不是const int func();這個只是表示函式的返回值為const,正確的const成員函式為int func() const;這個格式才表示函式為const型別,才能被const物件呼叫。
1classx2
3;910 x::x(int
ii) :i(ii)
11int x::func() const
//關鍵字const必須同樣出現在定義裡,不然會認為不是乙個函式
1215
16int
main()
17
虛擬化,有點煩
很早就在用 vmware workstation,後來是 vmware gsx,esx,virtual pc,virtual server 2005 r2,hyper v 幾乎都用遍了,最近在網上看到一些虛擬化名詞,又一頭霧水,不免又去搜了很多資料,貼上如下,留供參考。虛擬化技術,看來還是任重道遠啊...
最近Android有點煩
很久沒有寫部落格了,最近一直忙著公司的專案,剛剛發布了我們的goodteamlab 實驗室系列作品的第一款,我們也在不斷的嘗試 調整 創新,希望能給大家帶來更多 更好的遊戲。最近感覺android有點 煩 有點 亂 其實跟我之前提到android高速成長背後付出的代價是乙個道理,任何事物的發展過快必...
真有點就業壓力
過完國慶招聘會立刻多了起來。原本假期實習結束就計畫安心的過完最後一年,不參加招聘,不參加實習,畢竟以後工作的機會有的是,而校園時間真的不多了。幾天前去圖書館,看著滿屋子的書不禁有點感慨,大學就沒來過圖書館幾回,快畢業了卻對這些書捨不得起來。然而我的計畫始終沒有和行動一致過,開學後繼續進行實習,不過遺...