注:本篇内容转载与网络,方便自己学习,如有侵权请您联系我删除,谢谢。

  有位同学问我“Visual C++和C++有什么区别?”,这的确是初学者会感到困惑的问题,比较常见。除此之外,还有“先学C++好,还是先学Visual C++好?”,都属于同样的概念不明的问题,就比如问“英语和英语词典有什么区别”一样。要弄清这个问题的答案,就要明白语言,工具,库,标准的概念。可以参考我之前发的 Programming Language 那篇笔记。

一门程序语言,例如C++,根本上是一套语法体系,是逻辑领域上的规则集。而要真正使用计算机来应用程序语言,就需要有相应的语言实现,历史上,C++有多种实现,比如早期的cfront, 曾经的Turbo C++,现在流行的Visual C++和GCC。这些特定实现,以工具的方式存在于计算机中,比如编译器,链接器等。

但是单纯的语言实现是解决不了实际需求的,因此许多实现都提供了额外的程序,初期各种实现所带的库都是不同的,这就导致了同一语言不同实现之前移植的难度,因此业界就形成了一个标准委员会,为C++制订一套标准库,包含IO库, STL等。除去标准库外,还需要各种程序库来实现各个领域的需求,就有了各种各样的界面库,网络库等,比如C++常见的界面库有MFC,WTL,wxWidgets, GTK+,Qt,为了方便程序员使用这些库,工具厂商便将一些库直接集成到工具包中一起发售,比如Visual C++中除了对STL的支持外,还包含了MFC和ATL两个程序库。

所以说,C++是语言,Visual C++是工具集,MFC是程序库。要解决实际问题,开发应用程序,语言、工具和程序库三方面的学习是缺一不可的,而在程序库的学习中,标准库又是重中之重。

[转]Visual C++ 和 C++ 有什么区别?的更多相关文章

  1. visual C++ 项目和解决方案的区别

    项目:         项目是构成某个程序的全部组件的容器,该程序可能是控制台程序.基于窗口的程序或某种别的程序.程序通常由一个或多个包含用户代码的源文件,可能还要加上包含其它辅助数据的文件组成.某个 ...

  2. Visual Studio Debug和Release的区别及obj的作用

    一.Debug和Release的区别      1.Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂), ...

  3. c++ 11 国标标准方面的异常处理与微软在Visual Studio 2012的异常处理的区别

    这段代码: __try { } __except(GetErrorCode()) { } 可以捕获空指针,但是包围在其中的代码不能有自带析构函数的对象.c++ 11 标准里面的auto_ptr关键字, ...

  4. visual studio build and rebuild 的区别

    build 只编译发生改变的dll, (如下, 我只修改了web API,build的时候, 只有webAPI.dll发生更新) rebuild = clean + build (如下, 本项目中dl ...

  5. Perforce 与Source Insight, Visual Studio集成

    转自:http://shashanzhao.com/archives/837.html 1.Perforce 首先需要为perforce设置系统环境变量,以便perforce命令行可以正常使用. 环境 ...

  6. 杂项-软件: VBA(Visual Basic for Applications)

    ylbtech-杂项-软件: VBA(Visual Basic for Applications) VBA (Visual Basic宏语言) Visual Basic for Application ...

  7. Visual Studio 项目目录下的bin目录和 obj目录

    一.Bin目录 Visual Studio 编译时,在bin 目录下有debug 和 release 目录. 1.Debug: 通常称为调试版本,它包含调试信息,所以要比Release 版本大很多(可 ...

  8. web项目开发流程

    对于一个web项目,在实际编码之前,有一些通用的步骤来planning a website: 0.Defining the project (predr0->dr0) 对于外部项目,客户一般会发 ...

  9. Visual Studio 中 Build 和 Rebuild 的区别

    因为之前写的程序比较小,编译起来比较快,所以一直都没有太在意 Build 和 Rebuild 之间的区别,后来发现两个还是有很大不同. Build 只针对在上次编译之后更改过的文件进行编译,在项目比较 ...

随机推荐

  1. 一、docker学习笔记——安装docker

    系统win10 企业版 1.下载docker CE 2.安装.注意,由于docker 与Oracle VM VirtualBox 冲突,在windows平台上二者不可共存.你只能2选1!! 3.如果d ...

  2. Python初学者第六天 列表操作练习

    6day 列表练习: 1.创建一个空列表,命名为names,往里面添加old_drilver,rain,jack,shanshan,peiqi,black_girl: names = [] names ...

  3. Spring注解开发-全面解析常用注解使用方法之组件注册

    目录 1. @Configuration 2. @ComponentScan excludeFilters includeFilters 使用自定义TypeFilter 3. @Bean @Scope ...

  4. 高质量C++C编程指南笔记 标签: c++笔记 2015-11-22 20:59 179人阅读 评论(0) 收藏

    1.  在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少 CPU 跨切循环层的次数. 2.  如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面 ...

  5. MYSQL 升序排序但值为0的排最后

    转载 http://blog.csdn.net/looksun/article/details/51445205 如一张表的数据如下: 需要根据gz列的值进行升序排序,但值为0的排在最后面,即最终结果 ...

  6. 使用matlab对图像进行傅里叶变换

    原图: (0) 代码: I=imread('1.jpg'); I=rgb2gray(I); I=im2double(I); F=fft2(I); F=fftshift(F); F=abs(F); T= ...

  7. ejb3persistence.jar javax.persistence的注解配置

    JPA注解持久化类很方便,需要jar包:ejb3-persistence.jar.我用以下三个类来说明用法.  sh原创 转载请注明: http://67566894.iteye.com/blog/6 ...

  8. v-bind:的基本用法

    1. v-bind:class(根据需求进行选择) <style> .box{ background-color: #ff0; } .textColor{ color: #000; } . ...

  9. MyBatis(1)优点&介绍&工程

    本次全部学习内容:MyBatisLearning 一:jabc的相关说明: jdbc编程步骤: 加载数据库驱动 创建并获取数据库链接 创建jdbc statement对象 设置sql语句 设置sql语 ...

  10. 视图 b