观点一
c++是语言,但你知道,语言本身功能是很有限的,需要一些类库把常用的操作封装起来,以后可以直接调用,就节省了普通开发人员的大量精力.
stl和MFC都是一个扩充C++语言功能的类库.
stl是底层类库,提供的是一般编程都会用到的功能,主要是一套容器,和一套相关的算法.常用的数据结构,比如list, queue, stack, map等等,都在stl里面给你实现好了,直接用就是了.
MFC是高层库(相对于stl而言),它封装的是WIN32API函数,把上千个复杂的API函数封装起来,并通过自己独特的消息处理机制来方便原生windows程序的开发.MFC比stl的应用范围窄,只有在开发原生windows程序时才会用到.
观点二
C++ 指的是编程语言;VC++,是微软的C++开环境,内含MFC类库框架(对Windows API、视察可视化的封装);STL是C++语言支持的标准模板库,主要采用模板元编程技术实现的一套标准库,侧重于泛型。
严格来说,C++应该是面向对象、支持泛型的编程语言。VC6也支持STL的一个实现,只是支持的不咋地,到了VC7/VC8(VS2003, VS2005)才支持的挺好。
学习一门编程语言,在学习它的一些类库框架,往往会花上一段时间。
观点三
c++是一门编程语言,这门语言有它自己的标准和规范(比如有自己的语法)。
同样,针对C++这门语言,标准化组织又规定了相关的“程序库”,程序库中有各式各样的工具(都是由高手编写的,所以可用性极佳)供编程人员使用,而STL(standard template library,标准模板库)就是C++“程序库”的一部分。
至于MFC,它只不过是“利用C++的语法对windows API进行的面向对象的封装”而已,也就是说,有了mfc,我们不用“直接”调用windows API,而是可以通过C++的语法、以面向对象的方式使用windows API。