泛型学习体会1

    古人云,不识庐山真面目,只缘身在此山中。随着年龄和经历的增长,我越来越发现只有跳出某件事物的思维范畴,在能对它有更好的了解。一直以来,都对泛型编程充满疑惑,为什么要有泛型,而它的优势又是什么。为什么C++模板技术会在近年来大放异彩,而不是面向对象。前段时间研究了一下erlang这个函数式语言,让我以前对模板技术中的很多疑问都得消解。原来类型匹配这样的东西,在函数式编程中一直都存在,只不过函数式编程语言都是动态的匹配,在运行期自动对参数进行匹配,而C++是静态匹配,在编译器期间执行。这里C++ 编译器就相对应与函数式语言的解释器,C++中的类型就相当与函数式语言中的参数。C++的泛型编程就相当与对类型的编程。类型是事实在在的东西,例如int,char,或者定义一个person类。模板则更强调一个概念。类型与概念间存在某种约束的联系,例如像STL 里的排序算法,它只要求参数支持 <,> 这样的比较运算符号,这也就是一种概念把。

    函数式编程语言是非常优美的,是符合人类的语言。而C++泛型编程却非常复杂,经常让人莫不着头脑,特别是一些泛型类库,学会使用已非易事,要想研究其中代码,体味作者设计思路,简直让人望而生畏。泛型编程为什么难呢。我认为,因为泛型编程大多用在实现类库上面,而设计类库是需要在相关领域有丰富经验和独特思维的,也就是说要有明确的"概念",因此存在很多设计上的东西,而使用者往往不具备相关经验,无法领会作者的意图。第二点是C++泛型编程中,太多的技巧是被发现出来的,而不是被预先设计的,因此这些技巧就只能成为少数大师手中的工具,多数程序员窥视其门道。第三点,由于C++是强类型语言,能够让程序运行的东西只能是类型,而泛型编程却需要我们体会其中的"概念",两种思维间的转换确实太伤脑子了。

    作为C++程序员,很难抗拒泛型的诱惑。传统的面向对象,已经让C++很难堪了,而结构化编程C语言就已经足够,也许泛型才是C++真正的归宿。不过对于普通程序员来说,门槛确实太高了点,最近研究C++中的泛型,头发没少掉啊。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值