C++
文章平均质量分 76
Dennis Ritchie
交流才能进步
展开
-
C++设计新思维泛型编程与设计模式之应用 ( 函数内部类 )
本人水平有限,文中错误,不吝指教C++中有一个特性,可以在函数中定义一个局部类,在书籍《C++设计新思维泛型编程与设计模式之应用》中有一个例子如下所示:class Interface { virtual void func() =0;};template<class T, class P>Interface *makeAdapter(T tt, P pp) { ...原创 2018-06-16 09:26:57 · 313 阅读 · 0 评论 -
C++ 常数映射为型别
在书籍《C++设计新思维泛型编程与设计模式之应用中》2.4节中有一个小的知识点儿,以前从没见过,让我打开眼界。常数也可以作为型别进行使用,下面是具体的代码实例:template<int a>struct IntType { int b = a;};template<bool bl>struct BooleanType { bool mbl = bl...原创 2018-06-16 09:58:37 · 525 阅读 · 0 评论 -
C++设计新思维泛型编程与设计模式之应用(静态分发)
如果你不清楚常数映射为型别的话,你可以看我的另外一篇博客,,这里有有简短的介绍.C++ 常数映射为型别.运行时分发.相信编写过程序的人都知道,if,else语句或者是其他的判断语句都有分发跳转的功能,根据不同的运行时参数决定程序的执行走向。编译期分发编译期就已经决定了调用哪一个函数,说到这里,可能还是云里雾里,没关系,下面继续看.这里我们假设,现在有一个类NitifyContainer(这个例子来...原创 2018-06-16 10:57:34 · 453 阅读 · 0 评论 -
C++设计新思维泛型编程与设计模式之应用(型别对型别的映射)
《C++设计新思维泛型编程与设计模式之应用》这本书看起来不是那么容易,但是看懂了之后,但是我根据自己的理解提炼一下.现在假如说我们有一个通用的函数create用于来创建对象,但是对于某些特殊的类来说,创建方式又有所不同(参数不同),这里我们假设所有的类都继承自Animal类,Person类也同样如此,但是Person类的初始化方式比Anima类多了一个参数(这个参数是个常数)这个时候,解决方式有两...原创 2018-06-16 13:47:49 · 369 阅读 · 0 评论 -
C++设计新思维泛型编程与设计模式之应用(型别选择)
为了描述问题,根据《 C++设计新思维泛型编程与设计模式之应用》的2.6节的例子中,NitifyContainer中有一个数据结构用来存储类型T的实现,但是这个类型T有可能是多态的,在多态的情况下,存储指针,反之存储对象(你也可以不用这么做,这里只是为了描述这个问题),好了。《 C++设计新思维泛型编程与设计模式之应用》书中给出了第一种解决方案,代码如下所示:template<class T...原创 2018-06-16 18:44:47 · 648 阅读 · 0 评论 -
C++ STL中 Stack讲解
官方参考地址:https://en.cppreference.com/w/cpp/container/stack学过数据结构的人都知道,Stack是一种先进后出的数据结构,有点儿类似于你把多块饼干堆叠起来,只有先拿走上面的,才能拿下面的一样,简称LIFO。上面是关于Stack的定义,Stack实际上只是对底层容器的一些封装而已,这个容器必须实现SequenceContainer(参考地...原创 2019-06-09 09:02:49 · 811 阅读 · 0 评论