C++第一章 走进C++

C++是一门强大而灵活的通用编程语言,因其效率高和可移植性强 而广受欢迎。******
C++是C语言的增强版本,在兼容C的基础上,新增了*********在必要时,我会对C语言部分做详细介绍。
作为本书的第一章,首先,介绍一些基本概念;接着,讲解一段非常简短的C++源代码;然后,介绍几款功能强大且容易使用的开发工具;最后,向大家演示如何利用工具将源代码生成可执行程序。
1.1 基本概念

  1. 源文件(source file):是源代码文件的简称。一个C++项目通常包含多个C++源文件,每个C++源文件通常以.h或者.cpp结尾 。源文件里面包含一系列用编程语言编写的计算机指令,这些指令称为(源)代码。常见的编程语言有C、Java、PHP、JavaScript、C++、Python、Shell、Ruby、Objective-C、C#等等。
  2. 可执行文件(executable file):也是一种文件,可以让计算机完成特定任务。windows中常见的可执行文件名通常以.exe结尾(俗称exe文件)。
  3. 编译器(compiler):是一个或者一系列的计算机程序。它可以把源文件转换成目标文件。目标文件通常包含一系列二进制数 。
  4. 链接器(linker):也是一个计算机程序,可以把一个或者多个目标文件组合成可执行文件、库文件、或者其他目标文件。我们写的绝大多数的程序,几乎都是为了得到可执行程序。
    在这里插入图片描述
    源文件1和源文件2经过编译过程,得到各自的目标文件。目标文件通常以.o或者.obj结尾。然后再通过连接器把目标文件经过链接过程,生成可执行程序。有时候,在链接过程中,连接器会把其他所需文件,如:标准库中的iostream库文件,连同目标文件一起链接到程序中。
    源文件1和源文件2经过编译过程,得到各自的目标文件。目标文件通常以.o或者.obj结尾。然后再通过连接器把目标文件经过链接过程,生成可执行程序。有时候,在链接过程中,连接器会把其他所需文件,如:标准库中的iostream库文件,连同目标文件一起链接到程序中。
    1.2 Hello Word!
    在编写"Hello World"代码之前,先看一段及其简易、什么也不做的代码:
    1 int main(){
    2 return 0;
    3 }
    代码前面的序号1,2,3表示代码的行号,只是为了便于讲解,它们不应该出现在你的代码中。代码1~3行定义了一个函数。为了表明某个代码片段是函数,函数的函数名后面通常有一对圆括号。在这里,因为函数的名字是main,所以我们把这个函数称为main函数或者主函数(main是"主"的意思),int是当前函数的返回值类型,它是单词integer的缩写,表示整数类型,简称整型。返回值类型通常写在函数名的前面,二者之间用空格隔开。函数名后面的花括号部分,叫做函数体。函数体里面有一条语句——return 0;(代码第2行)。语句通常以分号结尾。这条语句的开头含有return关键字,所以又把它叫做return语句。
    main函数是程序的入口,它指定了程序开始执行的位置。用于产生可执行文件的所有代码中,有且只有一个main函数 。
    代码执行完第2行就会返回(因为该语句中有个关键字return),语句return 0;表示返回一个整数0。数值0与main()函数前面的int遥相呼应,一般情况下,return语句后面值的类型和函数前面的返回值类型一致或者兼容。
    如果程序正常结束,程序会执行完return语句,并返回整数0;否则,会得到其他标识程序结束的值,而且语句return 0;也不会被执行。
    return语句前面的空白是通过按下Tab键产生的。敲击一次Tab键可得到由四个空白符(即:空格)构成的制表符。按下"shift + Tab"键或者Tab键,可以在代码中产生缩进,以方便阅读。每一行结束位置处,按下回车键,可在新的一行继续输入。
    现在,我们开始编写第一个程序——“Hello World!“应用程序。
    该程序运行后,会在控制台中显示一条文本信息,信息内容为"Hello World!”(不包括双引号)。代码如下:
    1 // 文件名:HelloWorld.cpp
    2 // 在控制台输出Hello World!字符串
    3 #include
    4 using namespace std;
    5
    6 int main(){
    7 cout << “Hello World!”;
    8 return 0;
    9 }
    代码中第1行和第2行均为注释,因为这两行都有双斜线(//)。注释范围从双斜线后面第一个字符开始,到该行结束为止。被注释的部分,不会被编译到目标文件中,不论被注释的内容有多少,都不会影响目标文件的大小。双斜线后面的内容用于注明代码的功能,也可用于代码修改,例如:在某行代码的前面加上双斜线,注释掉整行代码,这样该行代码就不会被编译。或者在编写新的代码行时,将思路写在代码中,并用双斜线注释,之后再根据文字逐行编写代码。
    第7行cout << “Hello World!”;是代码的核心成分。cout是控制台输出(console output) ,双引号(”")中间的Hello World!是要在控制台窗口中显示的文本信息(双引号不会显示在窗口中)。因为Hello World!在双引号里面,所以我们把它称作字符串。例如:"123"表示字符串123,"ABC"表示字符串ABC,"A"表示字符串A,"0"表示字符串0。cout和被显示内容之间的两个连续小于号(<<),表示把右边的字符串插入到输出流中。该行末尾的分号(;)表示该语句结束。
    为了让cout关键字被正确识别和解释,还需要在代码中包含输入输出流文件,并使用标准名字空间。分别见代码第3第4行。因为输出流文件会告诉编译器如何将<<后面的内容显示到控制台窗口,而它的实现部分在标准名字空间中。
    #include 告诉预编译器:请把一个名为iostream的输入输出流头文件包含进来。using namespace std;用来限定cout,告诉编译器,如果你找不到cout的定义,请从标准名字空间中寻找 。如果你在代码中忘记使用标准名字空间(漏写第7行),编译器会因为不认识cout而报错。如果你对"包含头文件"和"名字空间"比较陌生,不要紧,我们会在本书的后续部分逐一解释。现在只需要知道,在学习本书代码的时候,记得写上这两句就可以了 。
    第5行是空白行,通过敲下回车键就可以实现。与制表符作用相同,都是为了美化代码,让代码更容易阅读。用空白行分割代码片段,可以让代码看起来更有段落感。
    在编写代码时,需要注意的是:除了代码中被注释的部分可以使用汉字和汉语标点符号外,其余的部分,均使用英文状态下的字母和标点符号。编写代码时,还要记得将输入法切换到英文状态,而且还是半角英文状态 。
    1.2.1 开发工具
    工具的好坏往往意影响着工程进展的快慢,一款性能良好的开发工具可以显著提升代码编写效率。Windows下的开发工具有很多,当前C++开发使用频次最多的还是visual studio 2010简称vs2010。它包含开发必需的编辑器和编译器,以及可供实时查阅的帮助文档。编辑器用来编写C++代码;编译器可以把我们的代码生成目标文件,然后调用链接器把所有的目标文件和库文件组装成可以执行的文件。vs2010可以在Windows XP、Windows 7或者更高版本的系统中运行,不区分32位(bit)还是64位系统。如果您的系统是win8或者win10,就需要用vs更高的版本,如:vs2013,或者更新的软件。比如我在我的另一台win8企业版64bit系统中,安装了vs2013而且可以完美运行 。
    1.2.2 vs2010下载与安装
    vs2010的下载地址在下方给出 ,该地址是微软官方提供的试用版软件,后缀.iso表明它是一个镜像文件。用7-Zip 将该镜像中包含的文件全部提取出来,双击setup.exe开始安装。

单击"安装Microsoft Visual Studio 2010";等待安装组件加载完毕后,单击“下一步”按钮。

选中"我已阅读并接受许可条款(A)",表示接受软件许可,继续点击"下一步"按钮;选中"选择要安装的功能(S)"下方的"完全(F)"选项,表示完整安装。"产品安装路径(R)"下方的路径保持默认,单击"安装"按钮,开始正式安装。

如果软件安装成功,窗口左上角会有"成功"字样。单击右下角"安装文档"按钮,安装帮助文档。

帮助文档路径在上面左图中"库位置"下方文本框中的路径,可以保持默认,也可以重新选择一个目录。这里把帮助文档放在了C盘下面的HelpLibrary文件夹下,在"库位置"下方文本框中输入C:\HelpLibrary\,注意C后面是英文冒号。如果路径不存在,安装程序会自动创建。点击"确定"按钮;确保至少添加"Visual C++ - 中文",然后单击“更新”按钮,开始安装帮助文档。

经过帮助文档的复制、索引合并后,窗口显示"更新完毕"字样,表示帮助文档安装成功。点击右上角的设置,选择"使用本地帮助(L) ",可以在没有网络的情况下使用刚才安装的帮助文档(图略)。至此,visual studio 2010及其离线帮助文档安装结束。
1.2.3 Windows平台其他免费开发工具

  1. Eclipse :需要根据电脑当前系统是32bit还是64bit下载相应位数的eclipse,同时还需要32bit或者64bit的jre (Java Runtime Environment,Java运行环境)的支持。
  2. gcc :分为32bit和64bit,对源码使用g++命令,可生成可执行程序。
    上述免费软件,针对不同平台(如:Window、Mac和Linux)都有相应软件,而且是开源的。
    1.2.4 使用visual studio 2010
    1. 打开visual studio 2010。
  1. 执行菜单命令:文件(F)  新建(N)  项目§。在弹出的对话框中,依次选择“Visual C++”  “win32控制台应用程序”,修改项目的名称为“HelloWorldProj”。因为需要在控制台上输出"Hello World!"字符串,所以这里将项目名称修改为HelloWorldProj,以便于通过名称猜测项目内容。

  2. 在弹出的"win32应用程序向导"对话框中,单击"下一步"。

  3. 确保选中的应用程序类型为"控制台应用程序",附加选项下方勾选"空项目"。点击"完成"按钮。至此,名为HelloWorldProj的空项目创建完成。

  4. 在"解决方案资源管理器"窗口可以看到刚才创建的空项目。窗口中高亮部分,就是在步骤2中候输入的项目名称。如果找不到“解决方案资源管理器”窗口,尝试执行菜单命令:窗口(W)  重置窗口布局®。接下来,为空项目添加.cpp文件。右键单击项目名,依次执行:添加(D)  新建项(W)…。

  5. 在弹出的"添加新项"对话框中,选择"C++文件(.cpp)" ,填写文件名称为HelloWorld.cpp。并单击“添加”按钮。

  6. 在"解决方案资源管理器"中双击HelloWorld.cpp文件将其打开,然后在右侧窗口中输入前面讲解的C++代码(注意:右侧窗口上方用矩形线框框起来的是当前正在被编辑的文件名,它的名字和左侧线框中的名字相同,也就是刚才打开的文件)。C++对大小写敏感,所以需要注意代码中字母的大小写。如果出现错误,vs2010会用红色波浪线标识。下图中,cout和<<之间的空格,以及<<和字符串"Hello World! "之间的空格,都是为了便于阅读,可有可无。

你也完全可以把代码中4~8行写在一行,并删除一些不必要的空格:
using namespace std;int main(){cout<<“Hello World!”;return 0;}
这样写与分开写没有实质上的差别,它不会减少目标文件的大小,反而对代码阅读带来不便。需要注意的是,#开头的预处理器指令需要独占一行,因为它们不是语句。如:#include。
8. 执行菜单命令:生成(B)  生成解决方案(B);或者按下快捷键"Ctrl + Shift + B"。
9. 执行菜单命令:调试(D) 开始执行(不调试)(H);或者按下快捷键"Ctrl + F5"。如果输入没有错误,可以看到程序运行的结果 。

  1. 如果把cout << “Hello World!”;改为cout << “Hello World!\n”;或者cout << “Hello World!” << endl;,输出中的"请按任意键继续… "提示语就会在新的一行显示。\n表示换行。endl(end line)表示该行结束,除了可以换行输出外,还可以刷新输出字符串缓存 。

    1. 定位错误。默认情况下,vs2010的错误提示窗口是不显示的。可以通过执行菜单命令:试图(V)  错误列表(L) 将其打开,窗口在vs2010底部显示。初学者最常见的错误是遗漏语句末尾的分号(;)或者把英文分号写成了中文分号(;)。尝试在vs2010中分别加入这两种错误。
      第一种情况,删除cout语句末尾的分号。vs2010将错误定位在第8行,说是return的前面缺少分号。这不是它定位不准确,而是因为在写代码时,一个语句可以分散在多行。如右图所示。这也告诉我们,在以后的排错时,需要在错误提示的所在行及其前后行查找。为了让程序便于阅读,把分散在多行的cout语句放在一行,并在第7行末尾加上分号。这个时候,错误提示信息也就自动消失。

第二种情况,错把中文用作英文。把cout语句末尾的英文分号改为中文分号。按下"Ctrl + Shift + B",错误列表中显示很多条与错误相关的信息。逐条阅读,根据第二条错误提示,可以知道是输错了分号。双击提示信息快速定位到错误所在行(第7行),把中文分号改为英文分号,错误提示随即消失。

针对这两条常见的错误的建议是:1)时刻注意该行末尾是否应该有分号,如果应该有,记得写上分号。2)在写代码时,将输入法切换到英文模式。3)多记忆一些英文单词,切记不要使用拼音代替单词。
12. 生成程序的Release(发行)版本。在所有已知错误(常说的bug,它包括语法错误和逻辑错误)已经排除 ,程序运行无误之后,就可以发布程序了。程序的发行可以通过vs2010的Debug/Release切换开关来实现。它在菜单"数据(A)"的下方,绿色三角形的右方,以下拉菜单的形式呈现。默认是Debug模式。通过单击下拉菜单,选中Release,可以切换到Release模式。

依次按下"Ctrl + Shift + B"和"Ctrl + F5"快捷键,就可以生成HelloWorld的Release版本了。该程序在项目文件夹中的Release文件夹下。右键单击’解决方案"HelloWorldProj"’,在弹出的对话框中选择"在Windows资源管理器中打开文件夹(X) ",该目录下的Release文件夹包含刚才发布生成的.exe文件,文件名为HelloWorldProj.exe,文件名和项目名称相同。如果要在其他装有windows系统的电脑上运行该exe文件,只需要将Release文件夹下的所有文件连同Release文件夹一同复制到那个电脑上即可。

  1. 尝试运行Release文件夹下的HelloWorldProj.exe文件。单击Windows系统的开始菜单,选择"运行® “,在"运行对话框” 里输入"cmd",然后按下回车键或者单击确定按钮。这样就打开了一个cmd窗口(命令窗口,cmd是command的缩写),vs2010通常把cmd窗口作为控制台。

然后,把Release目录下的HelloWorldProject.exe文件拖到cmd窗口中,按下回车键,就可以看到程序的输出了。

注意:双击exe程序也可以执行exe文件,但是由于程序中只有一条输出语句,紧接着输出语句是return 0;,程序会在输出Hello World!之后立即返回。主函数返回,意味着程序结束,因此,如果是双击该exe文件,只能看到一闪而过的黑框。如果在代码中加入cin.get();语句,就可以阻止程序自动退出。cin是控制台输入(console input),get是cin的一个成员函数,用来获取用户输入。main函数部分修改如下:
1 /* 修改后的main函数
2 函数中加入了cin.get(); /
3 int main(){
4 cout << “Hello World!”<< endl;
5 cin.get(); // 这句可以阻止程序自动退出
6 return 0;
7 }
代码1~2行介绍了另一种注释方式——段注释。段注释的内容在两个星号之间,如:/
注释内容 */。段注释的内容可以跨越多行,但是需要成对使用//,并保证它们的前后关系。
打开Release开关,按下"Ctrl + Shift + B"生成解决方案,按下"Ctrl + F5"运行程序。如果结果正确,在Release目录下会生成HelloWorldProj.exe文件。双击该文件,会输出字符串"Hello World!",当程序执行到cin.get();语句时,会等待用户的输入。只有当用户按下任意键并且按下回车键后(例如:按下空格键,然后按下回车键),程序才会退出。
14. 清理项目生成的文件:执行菜单命令:生成(B)  清理HelloWorldProj(N),可以清空Release文件夹下所有文件。单击Debug/ Release切换开关,将IDE切换回Debug模式。
15. 打开最近的项目。菜单命令:文件(F)  最近使用的项目和解决方案(J),可以找到最近创建的项目。最近的项目名以.sln结尾。所以,如果拿到一个项目文件,先找到项目文件夹下的.sln文件,双击,vs2010就会自动加载整个项目的文件,并在"解决方案资源管理器"中显示项目包含的所有文件 。
1.3 使用帮助文档

  1. “选择本地帮助"或者"选择在线帮助”。通过执行菜单命令:帮助(H)  管理帮助设置(S)。在弹出的"Help Library管理器"对话框中,单击右上角的设置(S)。将设置修改为"我要使用本地帮助",单击“确定”按钮。这样就可以在没有网络的情况下使用本地的帮助文档。

  2. 选中需要了解的内容。比如,对前面介绍的cout还不是太了解,可以将cout全选(在cout上双击,可以全选整个关键字cout)。

  3. 按下F1键。与cout有关的帮助会在浏览器中显示。
    当网络可用时,记得在"Help Library管理器"中,单击"联机检查更新(U)",让本地帮助文档处于最新状态。执行菜单命令:帮助(H)  检查更新(K),可以让vs2010保持最新状态。
    1.4 快捷键
    记住一些快捷键可以加快开发进度:

  4. Ctrl + Shift + N:新建项目

  5. Ctrl + Shift + A:添加新项

  6. Ctrl + Shift + B:生成解决方案

  7. Ctrl + F5:运行。如果在运行时发生错误,可以按下F5键调试,IDE会在错误的地方停止运行,并给出提示信息。
    其他快捷键 :
    选中若干行代码,依次按下Ctrl + K,Ctrl + C,可以注释选中部分代码。Ctrl + K,Ctrl + U可以对当前选中部分取消注释。
    依次按下Ctrl + A,Ctrl + K,Ctrl + F,可以选中所有代码,并将其格式化,便于阅读。
    Ctrl + J,用于代码快速补全 。在输入完cou时,然后按下Ctrl + J快捷键,提示框会显示很多候选的命令。按下键盘上下键,选中需要使用的命令。按下Tab键即可自动补全。

    Ctrl + F用于查找,Ctrl + H用于替换,Ctrl + S用于保存文件。随时使用Ctrl + S命令可以减轻因机器掉电(停电或者插头松动导致断电)带来的损失。但是如果您正在使用的机器装有还原卡,在U盘上新建项目并及时保存可能会是唯一的方法。
    以上快捷键可以在菜单项中找到,不需要特别记忆。在以后的使用中,多加留意,慢慢的就会记住。

本人保留所有著作权。未经许可不得转载。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值