今天在寫作業系統的作業,發現c++的很多基本語法都忘了,現在自己把基本語法總結一遍。方便以後複習。
**1.建構函式:**
父類建構函式 -> 類成員的建構函式 -> 自己的建構函式
**2.初始化列表:**
這裡有個部落格挺好
我的總結:
test1
test1 ;
test2(test1 &t1):test1(t1)
{}
test1 test1 ;
test2(test1 &t1)
第2種test1需要執行一次預設建構函式+一次賦值操作
第1種test1只需要執行一次拷貝建構函式
特別的:下面情況只能用初始化列表
* 類成員沒有預設建構函式
* 類成員是引用型別(只能初始化,不能賦值)
* 類成員是常量(只能初始化,不能賦值)
* 多個初始化列表,不是按初始化列表順序,而是按宣告順序
結論:* 盡可能用初始化列表
* 初始化列表順序和宣告順序一致
3.extern 外部的,extern 只是起乙個declare作用,可以用來修飾變數和函式,表示該函式的定義在其他模組中,也就是說,如果你在a.cpp檔案中定義a=1;在b.cpp檔案中宣告extern a;則可以引用a.cpp中的a。
4.#ifdef表示條件編譯
5.#define 和 typedef的區別:
define預處理,無腦替換
typedef是別名,不一樣。
define int int*
typedef int* int
則 int a,b:
typedef: int* a,b: a,b都是int*
define: int*a,b : a是int*,b是int
Linux Ubuntu 筆記(長期更新)
前者相當於快捷方式,後者則相當於重新拷貝了一次。ln s home sb a home sb b 注意!刪除軟鏈結時,注意rm a 和 rm r a 的區別,後者會將源資料夾也刪除,血的教訓。du h du h max depth 1 sudo find name tmp xargs sudo rm...
長期更新的知識點 0基礎開始
靜態的方法 不用new物件 可以直接通過類名呼叫 main 類bl 非靜態方法 不可以直接通過類名呼叫 getaa 如果 靜態的方法 呼叫 非靜態方法 bl.main bl.getaa 錯 證明 靜態方法不可以呼叫非靜態方法 假設 靜態方法可以呼叫非靜態方法 類 bl 靜態方法main getaa ...
Linux學習積累 長期更新
1,跳脫符號,輸入命令時,用 後緊接著enter鍵可以不執行已打出的命令,轉到下一行繼續輸入命令。2,輸入命令時要刪除,分別是從游標處向前刪除指令串 ctrl u 及向後刪除指令串 ctrl k 3,指令碼程式設計 shell script vim編輯器刪除所有內容的命令為 d 4,echo這個指令...