泛型编程前途?
现在准备学习下C++的泛型编程,买了两本书,《泛型编程与STL》,《C++设计新思维:泛型编程与设计模式之应用
》,书还没有到,想问下泛型编程虽然相对较新,但是还是发展了这么些年,主要都用在什么地方?以及什么地方可以大为所用?谢谢
[解决办法]
泛型是多种普遍使用的面向对象语言(C++/C#/java)的一个特性
学他们的话必然接触到泛型,对于通用数据结构的实现(比如STL),泛型是最优雅的方案了
所以,别单论这一门技术的前途,他只是很小的一个方面
[解决办法]
泛型滥用也会造成代码可读性下降、目标文件体积过大等副作用
对于编译器来说,泛型也是最难实现的特性之一,轻量级的语言一般都回避泛型
觉得楼主在没有明确的前提之下(比如正在做的项目大量使用泛型),就找两本书来单独学他,有点小题大作了
[解决办法]
泛型本来就可以说是“编译期的多态”,比虚函数表的那种运行期多态来说,空间开销大,时间开销小,实现中用了几种类型,代码就会拷贝几份
所以,如果你实现中用到的类型过多,泛型会大大增加代码体积,程序初始化首先就会变慢,对于现代化的计算机,代码过大又会造成指令缓存命中率下降,可能反而降低效率
泛型目前应用面还比较窄,主要集中于数据结构实现等特别适合泛型的领域
[解决办法]
看看stl源码剖析也就足够了,modern c++ design就不要浪费生命吧。
[解决办法]
c++ primer 有说,我做好心理准备了
[解决办法]
第二本还没勇气看。。。泛型编程是很值得学的。
[解决办法]
第二本是给泛型发烧友看的。就是有点太烧了(我看过目录)。
[解决办法]
对于绝大多数的软件来说,设计模式除了徒然增加复杂性和编程难度外,没有正面价值……
但office这样的规模的软件如果没有设计模式的支撑,其开发将是一场灾难
[解决办法]
当然从另一个方面去理解“设计模式”,其实许多的设计模式也是平常很有用的一些技巧,比如单例模式
[解决办法]
造成指令缓存命中率下降的问题以前真没有意识到,多谢提醒