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...