书中将C++划分为4个次语言,期望将混乱的C++体系进行简单的梳理,只能说目的达到了,但这么分合适不合适呢?不知道....
(1)C(C++ without class)
初级C++确实是对C的延生,这也涉及到C++是否应该严格兼容C的问题,历史问题不去评判,但这是事实。
(2)面向对象C++(Object-Oriented C++)
涉及到类、封装、继承、多态和虚拟(动态绑定)机制,这也是C++ OOP的核心部分。
(3)泛型编程(template c++)
常接触到的有模板函数和模板类,在STL中大量应用。
(4)STL
作为一个标准模板库,核心有:容器、迭代器、算法和函数对象等,相当有用和高效。
引一下2010年8月号《程序员》刊登的拙文《C++强大背后》最后一段:
C++学习建议:
C++缺点之一,是相对许多语言复杂,而且难学难精。许多人说学习C语言只需一本K&R《C程序设计语言》即可,但C++书籍却是多不胜数。我是从C进入C++,皆是靠阅读自学。在此分享一点学习心得。个人认为,学习C++可分为4个层次:
- 第一层次,C++基础:挑选一本入门书籍,如《C++ Primer》、《C++大学教程》、或Stroustrup撰写的经典《C++程序设计语言》或他一年半前的新作《C++程序设计原理与实践》,而一般C++课程也止于此,另外《C++
标准程序库》及《The
C++ Standard Library Extensions》可供参考; - 第二层次,正确高效地使用C++:此层次开始必须自修,阅读过《(More)Effective
C++》、《(More)Exceptional
C++》、《Effective
STL》及《C++编程规范》等,才适宜踏入专业C++开发之路; - 第三层次,深入了解C++:关于全局问题可读《深入探索C++对象模型》、《Imperfect
C++》、《C++沉思录》、《STL源码剖析》,要挑战智商,可看关于模版及模版元编程的书籍如《C++
Templates》、《C++设计新思维》、《C++模版元编程》; - 第四层次,研究C++:阅读《C++语言的设计和演化》、《编程的本质》(含STL设计背后的数学根基)、C++标准文件《ISO/IEC
14882:2003》、C++标准委员会的提案书和报告书、关于C++的学术文献。
由于我主要是应用C++,大约只停留于第二、三个层次。然而,C++只是软件开发的一环而已,单凭语言并不能应付业务和工程上的问题。建议读者不要强求几年内“彻底学会C++的知识”,到达第二层左右便从工作实战中汲取经验,有兴趣才慢慢继续学习更高层次的知识。虽然学习C++有难度,但也是相当有趣且有满足感的。
时间: 2024-10-12 09:13:09