【转】Visual C++ 和 C++ 有什么区别?

有位同学问我“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是程序库。要解决实际问题,开发应用程序,语言、工具和程序库三方面的学习是缺一不可的,而在程序库的学习中,标准库又是重中之重。

时间: 2024-10-25 14:33:25

【转】Visual C++ 和 C++ 有什么区别?的相关文章

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

一.Debug和Release的区别 1.Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试.Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息 2.Release:发布版本,不对源代码进行调试,编译时对应用程序的速度进行优化,使得程序在代码大小和运行速度上都是最优的.(调试信息可在单独的PDB文件中生成).Release

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

这段代码: __try { } __except(GetErrorCode()) { } 可以捕获空指针,但是包围在其中的代码不能有自带析构函数的对象.c++ 11 标准里面的auto_ptr关键字,有此关键字的指针发生的异常能被 try { } catch(...) { } 捕获,但是VC不支持auto_ptr关键字. 从微软官方的文档看出,微软的习惯做法是使用goto,在函数末尾return之后加上cleanup标量,一旦代码检测到异常则跳转到cleanup.cleanup代码后面的代码一般

Perforce 与Source Insight, Visual Studio集成

转自:http://shashanzhao.com/archives/837.html 1.Perforce 首先需要为perforce设置系统环境变量,以便perforce命令行可以正常使用. 环境变量名 值 P4CLIENT 填写你的workspace的名字,例:code_myname P4PORT 填写perforce服务器地址和端口号,例:172.23.3.3:1666 P4USER 填写你的用户名,例:myname P4DIFF(可选) 填写比较工具的路径,例: d:\Programs

面向对象....(概况)

Chapter 1 1_1 对象 客观世界中的事物都是对象,包括有形的物理对象,可感知的逻辑实体,以及 概念化的抽象实体.它有自己的属性,能够执行特定的操作. 类 具有相同属性和操作的一组对象的集合:它描述的不是单个对象,而是“一类” 对象的共同特征.其重要性在于它是面向对象技术中最重要的结构,它支持信息隐藏和封装,进而支持对抽象数据类型(ADT)的实现.1_4 UML与面向对象 UML是一种定义良好.易于表达.功能强大且普遍适用的建模语 言.它溶入了软件工程领域的新思想.新方法和新技术.它的作

Linux 基础命令(8)

一.vi编辑器 1.查看文本文件内容 cat.heat.more.less.tail 2.文件编辑工具 3.行编辑工具 grep.awk.sed(三剑客) 4.全屏编辑工具 nano.vi.vim 5.注意: 如果我仅仅是想看文件中的内容,尽量不要用vi或者nano 如果想看文件的前一部分用head,看末尾部分用tail 如果文件内容很少,可以用cat 如果文件内容很多(一屏显示不全),可以more或less vi:visual interface 可视化接口 6.区别: vim有语法着色 vi

Visual C++一定要注意ANSI和UNICODE的区别

最近在学习VC++,下载了VS2013,照着<Visual C++开发实战宝典>的第一个hello例程写了个例子,结果出现编辑框乱码的问题.晚上一直在折腾类型的转化,后来总结才明白了是ANSI和UNICODE的区别.老教程刚出的时候,这些控件接口都是ANSI的格式,而现在都统一成了UNICODE了. void ChelloDlg::OnBnClickedOk() { CString csPlus; //定义字符串变量 CString csSummand; m_PlusNumber.GetWin

Visual Source Safe(VSS)和Team Foundation Server(TFS)比较区别

Visual Source Safe 是用于软件专业开发人员的源代码管理工具Team Foundation Server是为开发团队提供集成源代码管理.问题跟踪和进程管理的更改管理系统 相同点 1.同时开发产品的多个版本2.在不影响其他版本的情况下对产品的一个已发布版本进行更改3.快速检索一批相关文件,确定做出更改的用户和时间4.比较文件的两个版本以及将更改从一个版本移至其他版本5.都提供了命令行客户端和Visual Studio 2005 集成 不同点 1.结构区别VSSVSS 是仅包含客户端

Visual Studio C++ Win32控制台应用程序,Win32项目,MFC的区别

背景 Visual Studio C++ 创建新项目蹦出来如下选项: Win32控制台应用程序,Win32项目,MFC有什么区别? 正文: Win32控制台,没有界面,命令行执行生成的文件则直接在后台运行,运行效果如下:生成的".exe"文件相当于Linux系统下用gcc编译出来一个".out"文件,直接运行操作即可,只有命令符,没有界面. Win32项目这个就有界面了,但是界面里面的控件,基本上要自己去实现. MFC项目这个也有界面,可是界面里面的控件就不需要自己

Visual Studio中的Build和Rebuild区别

Visual Studio中的Build和Rebuild区别 一般来说Rebuild=99%*(Clean+Build),效果在非常小的可能性下会不同,一般可以忽略.Rebuild是对Solution下的所有项目,逐个进行 Clean+Build.不论文件更改与否Clean+Build是对选中的项目(如果选中Solution的话,全部Clean之后,再全部Build)先执行Clean再执行Build.一般不需要执行Clean.Build只是针对有更改过的文件进行编译.而Rebuild会编译所有.