11 2014 档案

摘要:许多模板技术拖着一长串的类型参数,不过很多参数都设有合理的缺省值。 template class BreadSlicer{}; 但是如果我们需要指定某个非缺省实参,还必须明确的指定在它之前的所有实参,即使这些实参跟默认参数一致。 BreadSlicer 阅读全文
posted @ 2014-11-21 01:32 Claruarius 阅读(647) 评论(0) 推荐(0)
摘要:奇特的模板递归模式(Curiously Recurring Template Pattern)即将派生类本身作为模板参数传递给基类。 阅读全文
posted @ 2014-11-21 00:39 Claruarius 阅读(1455) 评论(0) 推荐(0)
摘要:C++中有“空”类的概念,这就意味着在运行期间其内部不好任何内存。 只包含类型的成员函数、非虚成员函数和静态数据成员的类为空类。 非静态的数据成员,虚函数和虚基类则在运行时期消耗存储空间。 阅读全文
posted @ 2014-11-20 21:48 Claruarius 阅读(674) 评论(0) 推荐(0)
摘要:多态是一种能够令单一泛型标记关联不同特定行为的能力,对面向对象程序设计而言多态是一块基石。C++中通过继承和虚函数实现在运行期处理这种行为的能力,我们称为动多态。然而模板也允许我们使用这种单一泛型标记来关联不同的特定行为,这种关联是在编译期间进行处理的,我们称之为静多态。 阅读全文
posted @ 2014-11-19 20:46 Claruarius 阅读(2232) 评论(0) 推荐(0)
摘要:现在我们已经知道如何使一个泛型定义扩展成一些相关的类家族和函数家族。但是有些时候,我们需要同一个名字的函数的不同实现(透明定义),为的是在不同情况下获得较高的性能,在这种情况下就不是简单的参数替换就能够解决的。 阅读全文
posted @ 2014-11-16 13:45 Claruarius 阅读(457) 评论(4) 推荐(0)
摘要:如果出现错误而是某些操作没有完成,程序应该: (1)返回到一种安全状态,并能够让用户执行一些其他的命令。 (2)允许用户保存所有操作的结果,并以适当的方式终止程序。 阅读全文
posted @ 2014-11-15 21:06 Claruarius 阅读(318) 评论(0) 推荐(1)
摘要:如果我们每次都必须显式的指明模板替换参数类型,例如concat 阅读全文
posted @ 2014-11-09 12:42 Claruarius 阅读(1051) 评论(0) 推荐(1)
摘要:如果说上一篇博文《模板名称》是教人怎么写模板,那么这一篇就是教人怎么使用模板。模板实例化的复杂性在于:对于产生自模板的实体,它们的定义已经不再局限于源代码中的单一位置。 阅读全文
posted @ 2014-11-01 22:21 Claruarius 阅读(2583) 评论(0) 推荐(0)