C 筆記20200818 關於過載和引數包裝

2021-10-23 21:28:37 字數 1567 閱讀 3838

1.執行緒休眠等待:thread.sleep(10);

2.對於相同或相似功能,引數個數或型別不同的函式,可以使用函式過載,對於函式結構及工作一致,而一部分內容(如文字)不同時(即非變數的不同,如果是僅變數不同可以使用模板),可以將不同的這一小部分包裝為引數,來減少函式個數。這兩種方法都是為了減少函式個數,使得**更為簡潔,有更好的可讀性。

示例:

public

intaddint

(int a,

int b)

public

double

adddouble

(double a,

double b)

public

intreduce

(int a,

int b)

過載:

//加法過載

public

intadd

(int a,

int b)

public

double

add(

double a,

double b)

public

intreduce

(int a,

int b)

引數包裝:

//加減乘除運算函式,c用於標識計算法則,0加法,1減法,2乘法,3除法。error用於判斷除法是否出錯

//用乙個引數標記加減乘除,這樣運算只需呼叫乙個函式即可,不用定義四個函式

public

intcount

(int a,

int b,

int c,

outbool error)

return

0; break;}

}int x =

1, y =

2, z ;

bool error =

false

;int count =3;

z =count

( x , y , count ,

out error);if

(error)

console.

writeline

("計算錯誤");

else

console.

writeline

(" 計算結果為 :"

+ z.

tostring()

);

引數包裝這個思路我不知道有沒有人想過,我覺得有些時候對於一些功能類別相同的函式,單獨寫出來也可以,但函式會很多,無論呼叫還是編寫,都會比較麻煩。這樣將區別之處包裝為引數,就可以用乙個函式實現。

這是我在做專案想到的,在通過串列埠向硬體傳送指令時,指令與功能一一對應,如果每個功能都寫乙個函式,也是可以的,但函式會很多,無論是起名編寫,還是呼叫都會稍微麻煩一些,而且這些函式除了傳送內容不同,其他並無不同。於是我將指令包裝成引數,將命令格式一致的傳送操作都包裝成乙個函式,命令格式不同的對函式進行過載。而格式與其他都不同的,就單獨作為乙個函式。幾十個命令,用了幾個函式就寫完了,確實是很方便,也很簡潔。

C 過載 筆記

如果運算子被過載為全域性函式,那麼只有乙個引數的運算子叫做一元運算子,有兩個引數的運算子叫做二元運算子。如果運算子被過載為類的成員函式,那麼一元運算子沒有引數,二元運算子只有乙個右側引數,因為物件自己成了左側引數。運算子即可以定義為全域性函式,也可以定義為成員函式。只能過載為成員函式 不能過載的運算...

關於C 函式過載

c 函式過載是使用形參作為特徵標,寫這篇文章是說明一下const作為函式過載特徵的情況 1 形參為引用時 void func const int val void func int val int main 2 形參為指標時 void func int p void func const int p...

c 關於符號過載

過載的操作符在類體中被宣告,宣告方式如同普通成員函式一樣,只不過他的名字包含關鍵字operator,以及緊跟其後的乙個c 預定義的操作符。可以用如下的方式來宣告乙個預定義的 操作符 class person inline bool operator const person ps const 實現方...