【c++自我精講】基礎系列三 過載
0 前言
分二部分:函式過載,操作符過載。
1 函式過載
函式過載:指在同一名字空間中,函式名稱相同,引數型別、順序或數量不同的一類函式,同一函式名的函式能完成不同功能。
//重新命名機制:函式過載的名稱都是一模一樣的,c++編譯器就是通過重新命名機制來區別這些同名函式的(不同的c++編譯器,重新命名機制可能不一樣)。非函式過載,只是返回值不一樣
void fun(int
i);int fun(int
i);//
非函式過載,不在同一名字空間
namespacea;
namespaceb;
//函式過載
int add(int i, int
j);
float add(float i, float j);
//c++呼叫c 函式:c++提供了乙個c 連線交換指定符號extern「c」來解決這個問題。重新命名機制
void fun(int i, double j); //
c++編譯器把函式名fun其實重新命名為_fun_int_double
void fun(double i, int j); //
c++編譯器把函式名fun其實重新命名為_fun_double_int
void fun(int i, ini j); c 編譯器編譯後的名字為_fun。
void fun(int i, int j); c++編譯器編譯後的名字為_fun_int_int。
c 編譯器和c++編譯器產生的名字不同,所以c++不能直接呼叫c 函式。用extern「c」解決。
extern"c2 操作符過載"
操作符過載:指用關鍵字operator加運算子表示的函式。可以把其理解為特殊形式的函式,運算子本身是函式名。
int add(int i, int j); //操作符過載規則:普通函式
intoperator+(int i, int j); //
+運算子函式
//用法
int k = add(10, 20
);int m = 10 + 20;
ps:後面講到類時再結合例子講解下操作符過載為成員函式。
C 自我精講 基礎系列四 static
變數的儲存型別 儲存型別按變數的生存期劃分,分動態儲存方式和靜態儲存方式。1 動態儲存方式的變數,生存期為變數所在的作用域。即程式執行到此變數時才為其分配儲存空間,作用域結束時,會自動收回為其分配的儲存空間。2 靜態儲存方式的變數,生存期為整個程式執行的過程。即程式開始時就為其分配儲存空間,程式結束...
C 自我精講 基礎系列六 PIMPL模式
c 自我精講 基礎系列六 pimpl模式 0 前言 很實用的一種基礎模式。1 pimpl解釋 pimpl private implementation 或 pointer to implementation 是通過乙個私有的成員指標,將指標所指向的類的內部實現資料進行隱藏。2 pimpl優點 舉例 ...
c 基礎複習2 過載
運算子過載 實質是函式過載,在實現過程中,首先把指定的運算表示式轉化為對運算子函式的呼叫,運算物件轉化為運算子函式的實參。然後根據實參的型別來確定需要呼叫的函式。特點 這個過程是在編譯過程中完成的。過載之後運算子的優先順序和結合性都不會改變。過載的功能應當與原有功能相類似。當運算子過載為類的成員函式...