摘要:
C++设计新思维的第2章,涉及各种技术:编译期Assert,偏特化的使用,内部类的使用,Int2Type实现整型数到类型的映射,Type2Type实现类型到类型的映射,Select技术实现类型选择,编译期间侦测可转换性和继承性,Type Traits技术。 其中Int2Type用于需要在编译期间通过整型数来执行分派,此时可将整型数映射为类型,然后通过函数匹配规则,在多个重载函数中选出最佳匹配的函数。Type2Type则用于需要在编译期间通过类型来执行分派,而原有类型有过于庞大,此时可运用Type2Type将原有类型映射为占用空间较小的类型,再进行分派。其余技术书中大多讲得通俗易懂,不再赘述。. 阅读全文
摘要:
Policy设计思路的来源: 软件设计,就是选择一种当前最优,而且在未来能得到很好扩展,便于维护的设计方案。通常都有多种可用的设计方案,而设计过程就是抉择的过程。 在软件设计中,常常会有这样的需求,对一个对象有大量的功能需求。此时常用的设计方案是:设计一个全功能型接口。然而,一个全功能型接口,将过于庞大,以至难以维护。好的设计应该是足够精巧的,而又清晰明了的。 故对于有大量功能需求的对象而言,全功能型接口不是好的选择。那么从另一个方向出发,则是将对象的功能分解,设计多个类来维护各种类型的接口,并尽量做到每个功能类的高内聚,功能类之间的低耦合。于是自然而然,产生这样的一种解法:多重继承。即对象实 阅读全文
摘要:
示例代码:(测试地址:http://codepad.org/9nz0yRRF ) 1 #include<vector> 2 #include<iostream> 3 #include<algorithm> 4 #include<stack> 5 6 using namespace std ; 7 8 /////////--------------------设计树的数据模型--------------------/////////// 9 /////////--- Start !!!! 10 11 template< class T > 阅读全文
摘要:
示例代码:( 测试地址 :http://codepad.org/6XDTlfcl ) 1 1 #include<vector> 2 2 #include<iostream> 3 3 #include<algorithm> 4 4 5 5 using namespace std ; 6 6 7 7 /////////--------------------设计树的数据模型--------------------/////////// 8 8 /////////---start 9 9 10 10 template< class T >... 阅读全文