Effective C++:把C++看作一个语言联邦
作者:互联网
C++曾经是从C with class发展而来的,但是现在随着异常、模板、STL等等的发展,C++已变得相当的多样与庞大,这一方面让C++功能强大无比的多重范式语言,上天入地无所不能;另一方面,也给学习者带来了相当的困难:处处都有繁杂特殊用法,处处又都有例外,怎么办呢?
解决大问题的第一步是分解问题,最简单的办法是把C++视为各种“次级语言”组成的联邦,在每个次级语言的版块里,语法用法一般是相对统一直观的,书里给出了四个部分:
-
C部分。说道理C++仍然由C发展而来,简单的条件和循环,数组指针,到预处理指令,再去理解编译链接,流水效率等。在这些问题上,C++虽不是完全适用C的规则,但也是大同小异。
-
面对对象部分。面对对象是C++诞生时最大的特色,在C struct的基础上,先理解构造析构拷贝,再了解封装继承多态,再到动态绑定等等,这是C++非常有趣的部分之一。
-
模板部分。这是C++泛型编程的部分,初学感觉很简单,越往后走越能感到其抽象复杂与精巧。在威力强大的同时,他与一般的函数和类都有不同的规则,极容易出错。另外由于template自身就有完整的一套语法,它还带来的崭新的“模板元编程”,作为有趣却没什么大用的屠龙之技。
-
STL。STL是一个非常大的程序库,它含有各种容器与算法,拥有紧密的配合和协调,有自己的一套规矩,如果你使用STL,你也要遵守他的规约。
有了这样一个比较合理的分类,编写程序时就可以更高效更容易思考,因为我们经常只使用他的一部分,而不用关心全部;在制定学习计划时,你也可以分开来看:我对面向对象了解多少?对STL又有多了解?这样一来C++就容易理解得多。
(这是2006年的,四个部分已经包不下庞大的多的现代C++了。不过道理没变,把每个部分分开看,我们远远用不到全部功能。)
标签:语言,Effective,STL,编程,C++,联邦,部分,模板 来源: https://www.cnblogs.com/ofnoname/p/16428369.html