C++中 函數,函數模板,函數對象,函數對象模板 與 回調機制 不得不說的事

來源:互聯網
上載者:User

為什麼說C++很牛呢,,,因為只有你想不到的,沒有C++做不到的...

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

         之前,已經學習過C++中STL中的泛型的,模板,這種通用性,使得我們,用它的人,心花怒放,熱血沸騰,呵呵~~!

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

         接下來,學習的,函數,函數模板,函數對象,函數對象模板,這些東西,在做C++程式設計與項目開發的時候可能更有用...

 

         回調機制,實現了C++中類間訊息傳遞,當這兩者遇到一起的時候,會出現什麼情況呢,,,呵呵~~~

 

         先看一段代碼:

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

 這裡覺的直接貼代碼的話,這裡的布局格式不是很好,,就把帖出來了:

 

        

----------------------------------------------------------------------------------------------------------------------------------------------------

 

     1>a是一個普通函數,實現參數與7的比較,

 

     2>b函數實現一個簡單回呼函數的功能

 

注:我當時只是測試,沒有想太多,這裡,a,c,d是一個類型的,是做為被回調的函數(函數傳參),,,

    而b函數則是用來實現回調的,即調用a,c,d的...給讀者帶來的不便請原諒....

 

解釋:這裡為什麼要用模板呢..很簡單,想一下模板的特性,,,不錯,因為b是一個通用函數(函數頭很通用,可是函數體就不通用了.呵呵,這個讀者可以自己研究下怎麼通用),,,(可別小看了這個函數(它函數體只有一句話))

 

     3>c是一個類,這裡用作函數對象,它實現,參數與任意給定值比較(這正是函數對象的精髓,可以看成是一個a類函數的集合或者叫抽象,自己怎麼好理解就怎麼理解)

 

     4>d類是一個模板函數對象,實現任意類型與任意給定類型比較

注1:當然它的實現也不是通用的.(可以很容易看出,這裡只能比較重載了>號的類型)

注2:當然還可以擴充,比如,這裡只實現了>這樣的比較..可以把任何操作都加進去,同樣,這裡只實現了返回bool,也可以把其它自己想要的返回加進去,,(重載不難實現吧.)

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

最後祝大家每天都有進步......

共同進步!!~~~~

 

                                                                                                             轉載請註明出處:http://blog.csdn.net/jing51536

                                                                                                                                                                        謝謝!!~~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.