C 基礎入門詳細筆記(四)

2021-10-05 12:44:47 字數 3769 閱讀 6015

c++基礎入門詳細筆記(一)

c++基礎入門詳細筆記(二)

c++基礎入門詳細筆記(三)

c++基礎入門詳細筆記(四)

c++基礎入門詳細筆記(五)

c++基礎入門詳細筆記(六)

目錄

六、內聯函式

1、定義

2、使用內聯特性(二取一)

3、小結

3.1、不要返回區域性變數的引用

3.2、函式可以不返回值,預設返回傳入的引用物件本身

3.3、關於利用函式實現傳送資訊

4、預設引數

4.1、使用預設引數

七、函式過載

1、定義:

內聯函式:將子函式複製到主函式進行執行,增大記憶體,減少時間消耗

//主函式

int main()

//子函式

inline void func1()

inline void func2()

inline void func3()

執行實際**

int main()

建議:

example1:

#include using namespace std;

int& sum() //返回引用型別的函式

//執行結束記憶體**

void test()

int main()

執行結果:result = 1024

解析:子函式執行結束後,系統會進行記憶體**,區域性變數會**,但是記憶體裡面的資料不會變,當下乙個子函式執行時會把之前記憶體覆蓋,所以導致輸出發生錯誤,所以千萬不要返回區域性變數的引用

(注:記憶體**指的並不是那記憶體儲存的資料清零,而是指記憶體中你的程式申請的這塊記憶體已經不是你的了?)

example2:

#include using namespace std;

int& sum(int& num1, int& num2) 

int main()

執行結果:result = 16

解析:函式沒有返回值,預設返回傳入的引用本身的最後乙個物件num2

解決方法:可以增加const,修改為

const int& sum(int& num)
example3:

#include using namespace std;

string chatto(const string& toname, const string& content);

int main()

void sample(int = 10)

int main()

void sample(int num)

注意:

void test1(int a, int b = 5, int c = 10);      //正確 test(1);|test(1,2);1賦給a,2賦給b

void test2(int a, int b = 5, int c);            //錯誤,預設引數後的引數也必須有預設值

void test3(int a = 1, int b = 5, int c = 10);    //正確 test();|test(1);|test(1,2);

1、指可以有多個同名的函式

2、函式名相同,引數列表不同(特徵標不同)

void eating(string food)

void eating(string& food)

注意:

void swap(int a, int b);

void swap(int& a, int& b);

兩個函式會被編譯器編譯成:

swap_int_int;
而另乙個函式

void swap(float a, float b);

void swap(float& a, float& b);

會被編譯器編譯成:

swap_float_float;
exampale:

#include using namespace std;

void sort(int, int len);    //函式名相同,引數列表(特徵標)不同

void sort(float, int len);

void sort(double, int len);

void show(int, int len);

void show(float, int len);

void show(double, int len);

int main()

;    float fnums = ;

double dnums = ;

cout << "before sorting :";

show(inums, sizeof(inums) / sizeof(inums[0]));

sort(inums, sizeof(inums) / sizeof(int));

cout << "after sorting:";

show(inums, sizeof(inums) / sizeof(inums[0]));

cout << "before sorting :";

show(fnums, sizeof(fnums) / sizeof(fnums[0]));

sort(fnums, sizeof(fnums) / sizeof(float));

cout << "after sorting:";

show(fnums, sizeof(fnums) / sizeof(fnums[0]));

cout << "before sorting :";

show(dnums, sizeof(dnums) / sizeof(dnums[0]));

sort(dnums, sizeof(dnums) / sizeof(double));

cout << "after sorting:";

show(dnums, sizeof(dnums) / sizeof(dnums[0]));

}//引數是陣列時,會自動降為指標

void sort(int nums, int len)    //陣列在傳參時候,實際上傳的是首元素的指標,首位址}}

}void sort(float nums, int len)    //陣列在傳參時候,實際上傳的是首元素的指標,首位址}}

}void sort(double nums, int len)    //陣列在傳參時候,實際上傳的是首元素的指標,首位址}}

}void show(int nums, int len)

cout << endl;

}void show(float nums, int len)

cout << endl;

}void show(double nums, int len)

cout << endl;

}

C 基礎入門詳細筆記(二)

c 基礎入門詳細筆記 一 c 基礎入門詳細筆記 二 c 基礎入門詳細筆記 三 c 基礎入門詳細筆記 四 c 基礎入門詳細筆記 五 c 基礎入門詳細筆記 六 目錄 四 指標 1 空指標 2 void 指標 3 引用 4 指標和引用 5 指標和陣列 6 指標的算數運算 6.1 指標的遞增和遞減 6.2 ...

C 基礎入門詳細筆記(六)

c 基礎入門詳細筆記 一 c 基礎入門詳細筆記 二 c 基礎入門詳細筆記 三 c 基礎入門詳細筆記 四 c 基礎入門詳細筆記 五 c 基礎入門詳細筆記 六 目錄 十 建構函式 1 建構函式定義 1.1 特點 1.2 作用 1.3 建構函式的種類 2 帶參構造 2.1 定義 十 一 棧記憶體與堆記憶體...

C 快速入門筆記(四)

6.虛函式與多型性 物件導向程式設計的第三大特徵就是多型性。多型性一般指同一事物有多種形態。因此,可以認為函式過載和運算子過載是多型性的最簡單形式。6.1派生類與基本類的轉換 在繼承的關係下,c 允許派生類物件可以直接轉化為public基本類物件。事實上,不是只有派生類物件可以直接轉換為public...