C 隨手筆記

2021-08-16 16:03:01 字數 699 閱讀 7588

成員變數在使用初始化列表初始化時,與建構函式中初始化成員列表的順序無關,只與定義成員變數的順序有關。因為成員變數的初始化次序是根據變數在記憶體中次序有關,而記憶體中的排列順序早在編譯期就根據變數的定義次序決定了。這點在effectivec++中有詳細介紹。

如果不使用初始化列表初始化,在建構函式內初始化時,此時與成員變數在建構函式中的位置有關。

注意:類成員在定義時,是不能初始化的

注意:類中const成員常量必須在建構函式初始化列表中初始化。

注意:類中static成員變數,必須在類外初始化。

靜態變數進行初始化順序是基類的靜態變數先初始化,然後是它的派生類。直到所有的靜態變數都被初始化。這裡需要注意全域性變數和靜態變數的初始化是不分次序的。這也不難理解,其實靜態變數和全域性變數都被放在公共記憶體區。可以把靜態變數理解為帶有「作用域」的全域性變數。在一切初始化工作結束後,main函式會被呼叫,如果某個類的建構函式被執行,那麼首先基類的成員變數會被初始化。

變數的初始化順序就應該是:

1 基類的靜態變數或全域性變數

2 派生類的靜態變數或全域性變數

3 基類的成員變數

4 派生類的成員變數

初始化列表和建構函式:

exit()和_exit()函式都可以用於結束程序,不過_exit()呼叫之後會立即進入核心,而exit()函式會先執行一些清理之後才會進入核心,比如呼叫各種終止處理程式,關閉所有i/o流等,

C 入門隨手筆記

1 net framework是microsoft為開發應用程式而建立的乙個開發平台。執行作業系統不限 microsoft版本執行在windows,mono版本執行開linux和macos 應用程式的型別不限 windows web web服務及其他。相容多種開發語言 c c vb jscript ...

oracle隨手筆記

1.儲存過程中is和as沒區別檢視 用is 游標 用as 不能反過來,其他情況沒區別 2.trim是用來去除字串開頭和結尾的函式 用法 select trim leading trailing both 你要刪的東西 from 被刪的字串 test trim from dual both後面沒有引數...

MySql隨手筆記

1,acid 資料庫事務正常執行的四個基本要素 2,多表查詢的三種連線方式,2.1 交叉連線,表1cross join 表2。查詢兩張表的結果,不會對錶的結果過濾,使用場景很少。返回的結果集是兩張表的笛卡爾集,比如第一張表 有4條記錄,第二張表有4條記錄,即4 4 16條。2.2 內連線,selec...