程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 《C++設計新思維》Command設計模式讀後感,互聯網新思維讀後感

《C++設計新思維》Command設計模式讀後感,互聯網新思維讀後感

編輯:C++入門知識

《C++設計新思維》Command設計模式讀後感,互聯網新思維讀後感


原文內容提領:

本書第5章標題為泛化仿函數,我認為本章真正講述的內容可以總結出一句話!

如何利用C++老標准實現C++11新標准類似std::function提供的功能。

std::function簡介:

分析std::function源碼可知,std::function大量利用新標准的特性,變長參數模板,完美轉發等。

C++中可調用體:

C++中的可調用體,現在可以補充一下

1.C-like function

2.C-like pointer to function

3.reference to function

4.function object

5.pointer to member function

6.ctor

7.C++11 lambda

文章中的Functor:

對於上述所列的任何一項,你可以在右側添加一對圓括號(),並在裡頭放入一組合適的參數,用以執行某個處理動作。

之後,講述的Functor即是對以1-6可調用形式的封裝。Functor可以傳遞,對於對於不同的調用體,但擁有相同的調用形式,提供統一的類型。

 

真正的讀後感:

作者在書中105頁感歎,“數量可變的template參數”根本不存在。(C++11變長參數模板)

雖說巧婦難為無米之炊,但是真正的能工巧匠並面對生產工具的限制也不會妥協,本書作者即是如此。

書中122頁,討論轉發函數的成本,在尾注中提到“引用折疊”,C++之父 Bjarne Stroustrup 提交報告,允許使用reference to reference。

(C++11 引用折疊,完美轉發std::forward)

什麼是精通一門語言?

1.認識到語言的限制,以及如何利用編程技藝消除這種限制。

2.能夠預知,斷言,甚至影響語言未來的發展。

 我聽聞一個故事,很久以前一位教授數據結構的老師,有一天他講完鏈表後,底下有同學提問:“老師,我使用VB語言,VB沒有指針,沒法實現鏈表!”。
眾所周知,沒有指針也可以實現鏈表,靜態(數組)鏈表就是證明。這位同學知道語言的限制,但沒有探索如何突破這個限制,《C++設計新思維》作者Andrei運用typelist技術突破了模板參數不可變的限制,並使得泛型編程與設計模式有機融合。

取其上者得乎其中,諸位我們的目標是精通一門語言,向Andrei學習。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved