第一章 C+语言概述 1.1知识要点 1、C+语言的特点 (1)C+语言支持数据封装:封装是指把对象属性和操作结合在一起,构成独立的单元,它的内 部信息对外界是隐蔽的,不允许外界直接存取对象的属性,只能通过有限的接口与对象发生联系。 类是数据封装的工具,对象是封装的实现。 (2)C++类中包含私有、公有和保护成员:类的访问控制机制体现在类的成员中可以有公有成 员、私有成员和保护成员。对于外界而言,只需要知道对像所表现的外部行为,而不必了解内部实 现细节。封装体现了面向对象方法的信息隐蔽和局部化原则”。 (3)C+语言中通过发送消息来处理对像:消息指对像之间在交互通讯中所传送的信息。消息由 三部分构成:消息名、接收消息的对象标识和参数。一个对象向另一个对象发送消息请求某项服 务,接收消息的对像响应该消息,进行所要求的服务,并把操作的结果返回给请求服务的对掾。 (4)C+语言中允许友元破坏封装性。 (5)C++语言允许函数名和运算符重载。 (6)C+语言支持继承性:继承指子类(派生类)可以自动拥有父类(基类)的全部属性和服 务。父类和子类是一般与特殊的关系。在定义一个子类时,可以把父类所定义的内容做为自己的内 容,并加入若干新的内容。 (7)C++语言支持动态联编多态性是指在基类中定义的属性和服务被子类继承后,可以具有不 同的数据类型和表现出不同的行为。当一个对象接收到一个请求进行某项服务的消息时,将根据对 象所属的类,动态地选用该类中定义的操作。 2、C+程序的组成 注释部分(两种风格)、编译预处理部分(宏定义,文件包含和条件编译)、程序正文部分 (类型定义、常变量定义、函数定义)。最终,程序源代码由A$CIⅡ码组成类似单词或词组的单元 (词法单元),可以用任意的文本编辑器编辑,源代码中的空白(空格、Tb、回车换行)用来表示 词法单元的开始和结束,除这一功能外其余空白将被忽略,但如果是字符串内部的空白(不含回车 换行,或者说字符串内不能直接回车换行,需要使用转义符)将作为字符串的一部分输出,不会忽 注释: (1)一对符号1"与"*"之间的内容称为注释。它可以占多行,是从C语言中继承来的一种注释 形式。 (2)一行中符号"俨之后的内容也称为注释。它只能占一行,是C++语言特有的一种注释形式。 编译预敵处理命令: C++的编译预处理命令以"#"开头。C++提供了三类编译预政处理命令:宏定义、文件包含和条件 编译。 程序主体:用函数组织过程,每个相对独立的过程都要组织成一个函数;不同的程序由不同的 函数按层次结构组织而成 。一个C++程序至少且仅包含一个main()函数,也可以包含一个main ()函数和若干个其他函数。其他函数可以是系统提供的库函数,也可以是用户根据需要自己编制 设计的函数 3、函数 C+的程序由若干个文件组成,文件名的后缀为.cpp(c plus plus)。每个文件又是由函数组 成,函数之间可以调用。在这些函数中只有一个函数是主函数main0。程序执行时,操作系统先调用
第一章 C++语言概述 1.1 知识要点 1、C++语言的特点 (1)C++语言支持数据封装:封装是指把对象属性和操作结合在一起,构成独立的单元,它的内 部信息对外界是隐蔽的,不允许外界直接存取对象的属性,只能通过有限的接口与对象发生联系。 类是数据封装的工具,对象是封装的实现。 (2)C++类中包含私有、公有和保护成员:类的访问控制机制体现在类的成员中可以有公有成 员、私有成员和保护成员。对于外界而言,只需要知道对象所表现的外部行为,而不必了解内部实 现细节。封装体现了面向对象方法的“信息隐蔽和局部化原则”。 (3)C++语言中通过发送消息来处理对象:消息指对象之间在交互通讯中所传送的信息。消息由 三部分构成:消息名、接收消息的对象标识和参数。一个对象向另一个对象发送消息请求某项服 务,接收消息的对象响应该消息,进行所要求的服务,并把操作的结果返回给请求服务的对象。 (4)C++语言中允许友元破坏封装性。 (5)C++语言允许函数名和运算符重载。 (6)C++语言支持继承性:继承指子类(派生类)可以自动拥有父类(基类)的全部属性和服 务。父类和子类是一般与特殊的关系。在定义一个子类时,可以把父类所定义的内容做为自己的内 容,并加入若干新的内容。 (7)C++语言支持动态联编 多态性是指在基类中定义的属性和服务被子类继承后,可以具有不 同的数据类型和表现出不同的行为。当一个对象接收到一个请求进行某项服务的消息时,将根据对 象所属的类,动态地选用该类中定义的操作。 2、C++程序的组成 注释部分(两种风格)、编译预处理部分(宏定义,文件包含和条件编译)、程序正文部分 (类型定义、常变量定义、函数定义)。最终,程序源代码由ASCII码组成类似单词或词组的单元 (词法单元),可以用任意的文本编辑器编辑,源代码中的空白(空格、Tab、回车换行)用来表示 词法单元的开始和结束,除这一功能外其余空白将被忽略,但如果是字符串内部的空白(不含回车 换行,或者说字符串内不能直接回车换行,需要使用转义符)将作为字符串的一部分输出,不会忽 略。 注释: (1)一对符号"/ *"与"* /"之间的内容称为注释。它可以占多行,是从C语言中继承来的一种注释 形式。 (2)一行中符号"//"之后的内容也称为注释。它只能占一行,是C++语言特有的一种注释形式。 编译预处理命令: C++的编译预处理命令以"#"开头。C++提供了三类编译预处理命令:宏定义、文件包含和条件 编译。 程序主体:用函数组织过程,每个相对独立的过程都要组织成一个函数;不同的程序由不同的 函数按层次结构组织而成。一个C++程序至少且仅包含一个main()函数,也可以包含一个main ()函数和若干个其他函数。其他函数可以是系统提供的库函数,也可以是用户根据需要自己编制 设计的函数 3、函数 C++的程序由若干个文件组成,文件名的后缀为.cpp(c plus plus)。每个文件又是由函数组 成,函数之间可以调用。在这些函数中只有一个函数是主函数main()。程序执行时,操作系统先调用
主函数,主函数再依次调用其它函数完成设计任务。 4、程序的编辑、编译、连接和运行 (1)编辑 编辑是将编写好的C+源程序输入到计算机中,生成磁盘文件的过程 (2)编译和连接过程 编译器的功能是将程序的源代码转换成为机器代码的形式,称为目标代码,然后,再将目标代 码进行连接,生成河执行文件。 编译过程又可分为三个子过程: 预处理过程:对源程序编译时,先进行预处理,如果源程序中有预处理命令,则先执行这些 预处理命令,执行后再进行下面的编译过程。 编译过程:编译过程主要是进行词法分析和语法分析的过程,又称源程序分析。包括:1)词 法分析2)语法分析3)符号表4)错误处理程序5)生成目标代码。 连接过程:这是编译的最后一个过程,将用户程序生成的多个目标代码文件和系统提供的库 文件中的某些代码连接在一起由连接器生成一个可执行文件,存储这个可执行文件的扩展名为.ex。 (3)运行 一个C++的源程序经过编译和连接后生成了可执行文件。运行可执行文件可在编译系统下选择 相关菜单项来实现,也可以采用其他方法 1.2典型例题分析与解答 例题1:显示"I am a student""字符串,并通过简单的程序了解和熟悉运用vC+开发环境进行编 写、编译、调试、显示结果的过程。 解答:该程序非常简单,如下代码所示,运用了cot输出流对象代表标准输出显示器,<代表 后边的字符串向显示器输出的方向。 #include <iostream> using namespace std: void mainO (cout<<"I am a student"<<endl;} 具体过程: (1)编辑 编辑是将C+源程序输入计算机的过程。在isual C+2010主界面下,点击"文件"菜单,选 择新建"菜单项中的项目”,即可出现"新建项目"对话框,如图1-1所示。选择W32控制台应用程 序”,在名称处输入新建的项目名称(比如例1),单击“确定”,然后按着向导下一步,在“应用程序设 置"对话框的附加选项中勾选“空项目”,单击“完成
主函数,主函数再依次调用其它函数完成设计任务。 4、程序的编辑、编译、连接和运行 (1)编辑 编辑是将编写好的C++源程序输入到计算机中,生成磁盘文件的过程。 (2)编译和连接过程 编译器的功能是将程序的源代码转换成为机器代码的形式,称为目标代码,然后,再将目标代 码进行连接,生成可执行文件。 编译过程又可分为三个子过程: 预处理过程:对源程序编译时,先进行预处理,如果源程序中有预处理命令,则先执行这些 预处理命令,执行后再进行下面的编译过程。 编译过程:编译过程主要是进行词法分析和语法分析的过程,又称源程序分析。包括:1)词 法分析 2)语法分析 3)符号表 4)错误处理程序 5)生成目标代码。 连接过程:这是编译的最后一个过程,将用户程序生成的多个目标代码文件和系统提供的库 文件中的某些代码连接在一起由连接器生成一个可执行文件,存储这个可执行文件的扩展名为.exe。 (3)运行 一个C++的源程序经过编译和连接后生成了可执行文件。运行可执行文件可在编译系统下选择 相关菜单项来实现,也可以采用其他方法。 1.2 典型例题分析与解答 例题1:显示"I am a student"字符串,并通过简单的程序了解和熟悉运用VC++开发环境进行编 写、编译、调试、显示结果的过程。 解答:该程序非常简单,如下代码所示,运用了cout输出流对象代表标准输出显示器,<<代表 后边的字符串向显示器输出的方向。 #include <iostream> using namespace std; void main() {cout<<"I am a student"<<endl; } 具体过程: (1)编辑 编辑是将C++源程序输入计算机的过程。在Visual C++2010主界面下,点击“文件”菜单,选 择“新建”菜单项中的“项目”,即可出现“新建项目”对话框,如图1-1所示。选择“Win32控制台应用程 序”,在名称处输入新建的项目名称(比如例1),单击“确定”,然后按着向导下一步,在“应用程序设 置”对话框的“附加选项”中勾选“空项目”,单击“完成
的世 排序依是默认值 ,围 博生日安装的袖板 已安装的候板 CLR空项日 Visual C++ Visual C+- 用于创建WMn32控制台瘦用程序的项日 CR控制台应用程子 Visual C+ Wm32控台宣e序 Visual C++ 写win32目 Visual C++ 园windows亩体应用程序 Visual C++ 3字明 Visual C++ 配 Visual C 生减文件项和 Visual C++ 名称心 位置L 旋取消■ 图1-1新建项目对话框 在窗口左侧的解决方案资源管理器框中的“源文件"位置处右击鼠标,选择“添加“新建项命令 弹出如图1-2所示添加新项对话框,选择℃+文件,cpp)”选项, 并在下面名称处输入要创建的源程 序文件名称(可以不加扩展名.cpp,系统会自动加上),如“输出一句话.cpp”,也可以在位置"处指 定源文件保存的位置,单击“添加按钮之后进入编辑窗口,如图1-3所示。在编辑窗口中输入源程序 代码。 已安的书 排序依据默认值 性索已安装的做版 Visual C++ 创包C4+代的文件 C+文件cp 头文件 Visual C++ 目属性pop Visual C++ Visual C+ 添A消 图1-2“添加新项"对话框
图1-1 新建项目对话框 在窗口左侧的解决方案资源管理器框中的“源文件”位置处右击鼠标,选择“添加”“新建项”命令, 弹出如图1-2所示“添加新项”对话框,选择“C++文件(.cpp)”选项,并在下面“名称”处输入要创建的源程 序文件名称(可以不加扩展名.cpp,系统会自动加上),如“输出一句话.cpp”,也可以在“位置”处指 定源文件保存的位置,单击“添加”按钮之后进入编辑窗口,如图1-3所示。在编辑窗口中输入源程序 代码。 图1-2“添加新项”对话框
clude iostream cout<a student"<Kendl: 图1-3编辑窗口 (2)编译、链接、运行程序 单击工具栏中的“开始执行(不调试)”(空心三角)按钮,或按Ctrl+F5组合键,可以编译链 接并执行程序,弹出如图1-4所示的“此项目已经过期”提示对话框,单击“是”按钮生成并运行可 目,如果程序代码没有错误,则会弹出显示程序的运行结果窗口如图1-5所示,按任意键将返回主窗 Microsoft Visual C+2010学习版 ×J 此项目已经过期①: 例1-Debug Win32 是否希望生成它? 是M☐否☐取消 口不再显示此对话框D) 1-4项目过期提示对话框
图1-3 编辑窗口 (2)编译、链接、运行程序 单击工具栏中的“开始执行(不调试)”(空心三角)按钮,或按Ctrl+F5组合键,可以编译链 接并执行程序,弹出如图1-4所示的“此项目已经过期”提示对话框,单击“是”按钮生成并运行项 目,如果程序代码没有错误,则会弹出显示程序的运行结果窗口如图1-5所示,按任意键将返回主窗 口。 1-4 项目过期提示对话框
C:\Windows\system32\cmd.exe 回X I am a student 请按任意键继续 图1-5程序运行窗口 如果程序代码有错误,会弹出错误提示对话框,如图1-6所示,单击“否”,返回主窗口,如图1-7 所示,在主窗口下面的输出框中给出相关错误信息,双击出错信息行,光标会定位到出错的程序代 码附近,反复查找错误并修改,然后重新运行程序,直到看到正确的运行结果。 Microsoft Visual C.+2010学习版 ①发生生成惜浇是香能续并运行上次的成功生成? 是 N□ 口不再显示此对话框心 图1-6“生成错误对话框 1MC0 s+2010学习版营理) .Debug .win32 main( #include <iostream> using namespace std: void main() cout<<"I am a student"<<endl 出 行6 列1 图1-7程序代码存在语法错误
图1-5 程序运行窗口 如果程序代码有错误,会弹出错误提示对话框,如图1-6所示,单击“否”,返回主窗口,如图1-7 所示,在主窗口下面的输出框中给出相关错误信息,双击出错信息行,光标会定位到出错的程序代 码附近,反复查找错误并修改,然后重新运行程序,直到看到正确的运行结果。 图1-6 “生成错误”对话框 图1-7 程序代码存在语法错误