摘要: 模板编程中如果要特化或偏特化(局部特化)一个类模板,需要特化该类模板的所有成员函数。类模板中大多数成员函数的功能可能是一模一样的,特化时我们可能只需要重新实现1、2个成员函数即可。在这种情况下,如果全部重写该模板类的所有成员函数,不但会增加工作量,也不利于代码的维护。例如下面的类模板A,只有在模板参... 阅读全文
posted @ 2015-07-11 09:55 C.g 阅读(3561) 评论(3) 推荐(0) 编辑
摘要: 模板代码和非模板代码是有区别的,如果像非模板代码那样把模板的声明放在头文件.h中,把模板的定义放在源文件.cpp中,那么使用这个模板时会得到一个链接错误。这个错误的原因在于,模板的定义还没有被实例化。为了实例化一个模板,编译器必须知道哪一个定义应该被实例化以及使用什么样的模板参数来实例化。我们可以用... 阅读全文
posted @ 2015-07-08 22:53 C.g 阅读(1730) 评论(0) 推荐(0) 编辑
摘要: 近年来函数式编程(Functional Programming,FP)开始获得越来越多的关注,继面向对象编程之后,函数式编程或许会成为下一个编程的主流范式(Programming Paradigm)。函数式编程具有代码简洁、开发速度快、更接近自然语言和易于并发编程等优点。目前越来越多的语言开始或增强... 阅读全文
posted @ 2015-06-15 23:22 C.g 阅读(3543) 评论(0) 推荐(0) 编辑
摘要: 今天用VS2013新建了一个工程,生成时出现很多怪异的链接错误,比如:error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class MTString __cdecl MTString::fr... 阅读全文
posted @ 2015-06-15 21:05 C.g 阅读(966) 评论(0) 推荐(0) 编辑
摘要: const是一个C++语言的限定符,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。1. 修饰常量用const修饰的变量是不可变的,以下两种定义形式在本质上是一样的:const... 阅读全文
posted @ 2015-06-13 21:21 C.g 阅读(7170) 评论(5) 推荐(3) 编辑