C++支持包括面向过程、面向对象、函数式、泛型和元编程形式的多重泛型编程语言。面向过程关注的是处理过程,“确定你需要的过程并采用你能找到的最好的算法”。面向对象关注的是问题中的事物,根据问题“确定你需要哪些类,为每个类提供完整的一组操作,利用继承明确表示共性。”。函数式编程将计算机运算看作是数学中函数的运算,避免了状态以及变量的概念。泛型编程是利用模板,将原本特定于某个类型的算法或类当中的信息抽取出来作为模板参数,支持开发一般化可重复使用的算法。元编程是指编写某类计算机程序,该计算机程序以数据的形式编写或操纵其他程序。
C++是有多个语言子集组成的语言联邦,将以上这些特征清晰而优美地集成在整个语言之中,支持通过组合各个语言特征或提供尽可能少的各个语言独立的特征来得到问题的解决方案。任何特征的实现都不会对未使用这个特征的程序增加额外的开销。用户只需了解自己写程序中需要的一个语言子集。
C++语言的主要语言子集包括以下四类:
- C。C++是以C语言而基础的,语句、预处理器、内置数据类型、数组、指针等概念都来自C,支持过程式和函数式程序设计和开发。
- Object-Oriented C++。包括类、封装、继承、多态、虚函数等支持面向对象机制的元素,支持面向对象的程序设计和开发。
- Template C++。使用模板,支持泛型编程和模板元编程。
- STL。模板程序库,包含容器、迭代器、算法以及函数对象等,提供了一组标准化的数据结构和算法。
参考文献
- Bjarne Stroustrup著,裘宗燕译. C++程序设计语言(特别版).机械工业出版社 2009.
- Scott Meyers著,侯捷译. Effective C++中文版. 电子工业出版社. 2012.
- http://www.cnblogs.com/kym/archive/2011/03/07/1976519.html
- http://baike.baidu.com/link?url=wENyAGIpE4EF-LRi4JquTlLGALYGZTVxWHVBY_adDmExlMRxXGQAPVz9XJNaYQvoqsGWhRO7j5FS0_mWbAJgCa
- http://baike.baidu.com/link?url=-kDW_Du6aOmggakLfeknnf9l1RA9iuRw16a-D_KHC4U6BXHG4kBG6tog0SxJ2Z7JxZ2mYLRTmPoKl5FliUu4ma