1.內建函式
inline必須在呼叫前進行完整定義,語#define相同,但是消除了不安全性
例:inline float circle(float r)
2,函式原型
語法形式:返回型別 函式名(參數列);
(1)函式原型的參數列中不包含引數的名字,而只包含型別;
(2)函式定義由函式說明部分和函式體構成;
(3)c++的引數說明必須放在函式後面的括號內;
(4)主函式main不必進行原型說明
(5)原型說明中沒有指出返回型別的函式,c++預設返回型別為int;
(6)無返回型別需定義void;
(7)如果函式原型中未註明引數,c++假定該函式的參數列為空,在c++中 f()=f(void)
3,帶有預設引數的函式
(1)在函式原型中,所有取預設值的引數都必須出現在不取預設值的引數的右邊;
(2)在函式呼叫時若某個引數省略,則其後的引數皆應省略而採用預設值;
4.函式過載
函式引數型別不同和個數不同,引起過載
(1)引數需有不同
(2)最好能執行相同的操作
5.作用域運算子::
區域性變數載其作用域內具有較高的優先權;
在區域性變數的作用域中使用同名的全域性變數,用::運算子
6.無名聯合
在關鍵字union後面沒有聯合名,可以直接使用其中變數;
7.強制型別轉換
int i=10;
float x= (float)i;
float x=float(i);
c++都接受
8.new和delete
使用new自動返回正確的指標型別,需要用delete**
9.引用
引用是能自動間接引用的一種指標,"type &"
int i=5;
int &j=i;
i和j使用同一記憶體位置,i變化j隨之變化;
注意的地方:
錯誤的用法:
int &*p; //不能建立指向引用的指標;
int &&; // 不能建立引用的引用;
int &p[3]; //不能建立引用陣列;
引用的返回值:可以將函式用在賦值運算子的左邊;
C 讀書筆記
c陷阱和缺陷 1.賦值符優先順序比邏輯比較低,賦值表示式的結果為賦值後的結果 2.編譯器掃描符號使用貪心法,儘量選擇最長字元的符號串,如a 理解為a 而不是a 3.為相容老版本編譯器,不同符號之間最好加空格,如a 1可能理解為a 1,應該改為a 1 4.老版本編譯器,8進位制數以0開始,後面可以加超...
c 讀書筆記
再看一本叫做 stl lectures 的書,裡面有一段 讓我學習了 include includeusing namespace std template const t max const t x,const t y int main 我說這段 讓我學習,不是說它寫的多好 因為這段 在g 4.8...
C 讀書筆記
什麼是封裝?在物件導向程式設計來講,就是把資料和針對該資料的操作,統一到一個class裡。實際上還包括以標頭檔案的格式將一些型別定義,函式宣告,封裝至某個標頭檔案。還有namespace語法等。建構函式 什麼是建構函式?通俗的講,在類中,函式名和類名相同的函式稱為建構函式。它的作用是在建立一個物件時...
C 讀書筆記
1 一般的程式設計流程 編輯 編譯 連結 除錯2 std 是名空間 3 使用 using namespace std 語句,使得後面的名稱若沒有在現場定義,則會自動 到std 的名空間去找。4 c 對 c的增強,表現在兩方面 a 在原來程序導向機制的基礎上,對 c語言的功能做了不少擴充 b 增加了物...
C 讀書筆記
一,c 物件初始化語法 1 product p new product 2 宣告物件嘛,應該有分號的。其實,我們在使用集合或陣列的時候,早就使用過這種語法糖了,如 1 list templist new list 二 使用拓展方法 第三方類或者是沒有源 的類,可以通過用拓展方法來獲得所需的功能。1 ...