C 中委託的最簡單理解方式

2021-04-25 14:20:34 字數 603 閱讀 9356

近這段時間比較空閒,回顧了一下基礎的東西,溫故而知新嘛!!

裡就先談一下物件導向最基礎而且最重要的型別之一「委託」。下面用乙個比較容易理解的例子來方便理解:

唉,羅嗦了這麼多,還是看一下例子比較實際。

下面定義了兩個類:乙個是駕駛員類,乙個是駕駛方法類。

在driveclass類中我們可以定義所有動物為駕駛員;而各種機器的駕駛方法也封裝在programclass類裡面。

那每個駕駛員怎麼能夠輕易的駕駛每種機器呢,奧妙就在下面:

這裡定義了乙個用來封裝駕駛方法的委託,如果需要傳遞某種機器的駕駛方法,就需要例項化它的乙個委託,例如要封裝乙個汽車的駕駛方法:

好,現在嘗試一下讓猴子駕駛汽車吧:

上面**輸出:

猴子駕駛:

哈哈,這樣就可以駕駛汽車了!

下面給出完整**

執行以上**,可以得到:

人類駕駛:

哈哈,這樣就可以駕駛汽車了!

哈哈,這樣就可以駕駛輪船了!

哈哈,這樣就可以駕駛飛機了!

猴子駕駛:

哈哈,這樣就可以駕駛汽車了!

哈哈,這樣就可以駕駛輪船了!

哈哈,這樣就可以駕駛飛機了!

理解c 中委託

1.我們對委託做乙個總結 委託是乙個類,它定義了方法的型別,使得可以將方法當作另乙個方法的引數來進行傳遞,這種將方法動態地賦給引數的做法,可以避免在程式中大量使用if else switch 語句,同時使得程式具有更好的可擴充套件性。正確理解委託的列子 usingsystem usingsystem...

C 中委託 delegate 和多播委託的理解

委託是定址方法的.net版本。在c 高階程式設計 第七版 中這是對委託的第一句描述。什麼是定址方法?簡單理解為我們通過委託傳遞乙個方法給另乙個方法。什麼時候需要傳遞方法?在微軟的官方文件和c 高階程式設計 第七版 這本書都提到乙個例子 在物件的排序演算法中,需要對物件進行比較,而不同物件比較的方法不...

C 委託 怎樣理解C 中「委託」的含義和用途

下面是的回答 我是這樣理解的 委託是對方法的引用,相當於方法的別名,也就是說委託與方法具有相同的行為。委託變數說白了就是接受方法名作為引數的變數,當我們使用這個委託變數的時候就相當於呼叫了這個方法。我也感覺 委託 就是方法別名,或者呼叫別人的方法時,不用原來的方法名,可以自己起乙個有意義的名字 聯想...