Yxd:
这个下个具体的定义俺还真说不来。。。不太准确的——在一定的行为规则下忽略具体的数据类型而组合新的行为规则,同OO一样都是一种抽象问题的方法
[阅读: 629] 2004-10-10 09:29:03
比如容器,容器数据类型是不同的,但是不管容器装什么类型的数据,作为容器本省表现的行为方式是一样的,所以就可以构造一个抽象的描述容器行为的东西,在具体使用的地方再指定具体的数据类型具现它。
又比如算法中的排序,同样地——作为算法本身也应该是抽象于具体的数据之上的,快速排序、冒泡排序也好,只要排序的数据类型可以做比较就适用。
。。。还是说不清。。。如果你以前真的没怎么接触过范型的话,stl的容器首先推荐给你,只要你的程序中用到数据结构应该都可以用它,除非你有很变态的需求(比如性能要求极端苛刻),容器也是范型中很重要、基本的和用得最多的东西。再者就是看书、看源代码了。好书,俺看过的Modern C++ Design是在范型方面极尽奇技淫巧的一本书,很值得一读。代码上的话,stl(不同版本的),Loki,MTL,ACE等等(精力有限的话:>)都不错。。。
此外,还得有一个好的编译器,如果是stl容器大多数C++编译器倒也都支持,但是再稍复杂些的用法、模式就够呛了,比如VC6就不支持基本的template template参数和模板偏特化。个人推荐VC7和g++(现行通用的应该都行)。
其它的大家补充吧。。。