设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

现代C++为什么采用泛型编程?

2014-12-12 16:17| 发布者: joejoe0332| 查看: 11071| 评论: 0

摘要: 正如 Biarne Stroustrup 指出的那样,“C++ 是一种多范型的语言。”它支持不同风格的程序和范例,面向对象的编程只是其中之一,还有结构化编程和泛型编程。在过去几年 C++ 方面专家 Andrei Alexandrescu,Scott Meye ...


  泛型编程产生的代码更加简洁


  拷贝代码使得维护变得困难,而且可能产生各种错误。使用泛型编程可以避免有害的重复。


  第二个小例子:计算两个数字之和。下面是不使用模板完成的代码:



  使用模板函数,代码变得更加简洁:


  这只是展示使用模板获得简洁代码的一个小例子,STL 和 boost 包含更高级的算法,使得泛型编程个更加强大能够取代 boilerplate code。


但是为什么泛型编程没有得到广泛的使用?

  泛型编程听起来更加自然和灵活,它可以提供比 OOP 更多的用法,然而许多开发人员发现它非常复杂,很难学习和使用。

  • 代码变得不清晰,更难维护。
  • 编译错误更难懂。 


  如果你看一下知名的 C++ 开源设计,就会知道泛型编程大部分只用在 C++ 库里,像stl,boost,loki和 folly,但是很少有使用反省编程的应用,虽然他们大部分都用了模板库。


总结

  现代 C++ 设计更倾向于强大的泛型编程方法,但是在使用之前你可能需要花费很大代价去学习。感谢 Andrei Alexandrescu、Scott Meyers 和 Herb Sutter 等人的努力让泛型编程更好理解,并简化了其应用。但是现代 C++ 设计还没有被 C++ 社区广泛使用。


(英文codergears,译者yangjianqiao0

转自:http://code.csdn.net/news/2823075


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部