340 likes | 495 Views
面向对象及 C++ 简介. 12. 本章导读. C++ 是在 C 语言的基础上开发成功的,是对 C 的扩充。 C++ 在保留了 C 语言原有的结构化程序设计的所有优点的基础上,增加了面向对象的机制。 本章主要介绍 C++ 的初步知识,通过本章的学习,了解面向对象的程序设计方法的基本概念;重点掌握 C++ 的程序结构。. 版本. 年份. 在 C 语言基础上添加的新特性. 带类的 C. 1980. 类和派生类,公有成员和私有成员,构造函数和析构函数,友元,内联函数,赋值运算符的重载. C++1.0. 1985.
E N D
面向对象及C++简介 12
本章导读 C++是在C语言的基础上开发成功的,是对C的扩充。C++在保留了C语言原有的结构化程序设计的所有优点的基础上,增加了面向对象的机制。 本章主要介绍C++的初步知识,通过本章的学习,了解面向对象的程序设计方法的基本概念;重点掌握C++的程序结构。
版本 年份 在C语言基础上添加的新特性 带类的C 1980 类和派生类,公有成员和私有成员,构造函数和析构函数,友元,内联函数,赋值运算符的重载 C++1.0 1985 虚函数,函数运算符的重载,引用,const常量 C++2.0 1989 类的保护成员,多重继承,赋值和初始化的递归定义,抽象类,静态成员函数,const成员函数 C++3.0 1993 模板,异常,类的嵌套,名字空间 12.1 C++概述 12.1.1C++语言的发展
12.1.2C++语言的特点 1. C++是C语言的超集 2. C++是一种面向对象的程序设计语言 3. C++具有很好的通用性和可移植性 4. C++具有丰富的数据类型和运算符,并提供了功能强大的函数库。
12.1.3面向对象程序设计概述 面向对象程序设计(Object-Oriented Programming,简称OOP)是20世纪80年代发展起来的一种程序设计方法。它通过模拟现实世界中的事物和关系,利用抽象、分类、归纳等方法来构造软件系统。
12.1.3面向对象程序设计概述 1.面向对象程序设计的基本概念 (1) 对象 实体是指客观存在的事物,而对象是指现实世界中无所不在的各式各样的实体。 (2) 类类是对一组对象共同具有的属性和行为进行的抽象,它提供了一个具有特定功能的模块和一种代码共享的手段。 (3) 消息消息是向某对象请求服务的一种表达方式,如果用户或其他对象向该对象提出服务请求,便可以称为向该对象发送消息。
12.1.3面向对象程序设计概述 2.面向对象程序设计的特点 (1)封装性封装性是指将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在其内部。 (2)继承性继承性是指一种事物保留了另一种事物的全部特征,并且具有自身的独有特征。 (3)多态性多态性是指当多种事物继承自一种事物时,同一种操作在它们之间表现出不同的行为。
12.2 C++程序结构 12.2.1几个简单的C++程序 【例12-1】一个最简单的C++程序 //Exl2-1.cpp #include <iostream.h> int main() { cout <<"This is a simple C++ program.\n"; return 0; }
【例12-2】在屏幕上输出一个由*号组成的三角形。【例12-2】在屏幕上输出一个由*号组成的三角形。 //Exl2-2.cpp #include <iostream.h> void drow(int num); //函数原型声明 void main() { int num=5; //定义并初始化变量 drow(num); //函数的调用 } void drow(int num) //函数的定义 { for(int i=0;i<num;i++) //循环语句 { for(int j=0;j<=i;j++) cout<<"*"; cout<<endl; } }
【例12-3】用类的概念改写上例 //Exl2-3.cpp#include <iostream.h>class DrowArroy{ public: void Drow(int num); };void DrowArroy :: Drow (int num) { for(int i=0;i<num;i++) { for(int j=0;j<=i;j++) cout<<"*"; cout<<endl; }} main(){ int num=5; DrowArroy myDrow; myDrow.Drow(num); }
12.2.2 C++程序的基本组成 1.预处理命令C++中提供了3类预处理命令:宏定义命令、文件包含命令和条件编译命令。每一个以符号“#”开头的行都是预处理命令。 2.语句 语句是组成程序的基本单元,它可以是用来判断的条件语句或反复执行的循环语句等。它们是C++的重要部分之一。 3.函数 一个C++程序是有若干函数组成的。同C语言类似。 4.变量对象 大多数程序离不开变量和对象。 5.输入和输出 6.注释
流名 含 义 隐含设备 cin 标准输入 键盘 cout 标准输出 屏幕 cerr 标准出错输出 屏幕 clog cerr的缓冲形式 屏幕 12.2.3数据的输入和输出
1. 输出流cout 【格式】cout<<表达式1<<表达式2<<……<<表达式n;【功能】将各表达式的值按系统自动决定的格式顺序输出到显示器上。【说明】(1) 在C++中将数据送到输出流称为“插入”或“放到”。 << 在这里不作为位运算的左移运算符,而常称为“插入运算符”;(2) 各表达式的类型可以是任意的;如:float a=3.45; int b=5; char c='A'; cout<<"a="<<a<<","<<"b="<<b<<","<<"c="<<c<<endl;
1. 输出流cout (3) 可以在一个输出语句中使用多个运算符<< 将多个输出项插入到输出流cout中,<<运算符的结合方向为自左向右,但要注意每输出一项要用一个<< 符号,不能写成cout<<a,b,c, "A"; 形式。 (4) 可以使用表12.2中的格式控制符控制数据的输出格式(其中使用setw()、setfill()、setprecision()应加入预处理命令:# include <iomainip.h>);
2. 输入流cin 【格式】cin>>变量1>>变量2>>……>>变量n; 【功能】接收从键盘输入的数据并依次送入各变量中。 【说明】 (1) 在C++中,这种输入操作称为“提取”或“得到”。>> 常称为“提取运算符”。 (2) 各变量可以是任意数据类型,输入时各个数据之间用空格、Tab键或回车键分隔。例如: int a; float b; cin>>a>>b; //输入一个整数和一个实数。注意不要写成cin>>a,b; 可以从键盘输入:20 32.45(数据间以空格分隔) a和b分别获得值20和32.45。
【例12-4】cin与cout一起使用 // Exl2-4.cpp # include <iostream.h> main( ) { cout<<"please enter your name and age: "<<endl; char name[10]; int age; cin>>name; cin>>age; cout<<"your name is "<<name<<endl; cout<<"your age is"<< age<<endl; }
12.3 C++程序的编辑与运行 12.3.1Visual C++开发环境 项目工作区窗口 代码窗口 输出窗口
12.3.1Visual C++开发环境 1.菜单栏 Visual C++菜单栏包含了开发环境中几乎所有的命令,它为用户提供了代码操作、程序的编译、调试、窗口操作等一系列的功能。与一般Windows应用程序一样有:文件、编辑、视图、插入、工程、编译、工具、窗口、帮助等菜单。 2.工具栏 通过工具栏,可以迅速地使用常用的菜单命令。最常用的工具栏是标准工具栏,当鼠标指向这些工具时,通常有信息提示工具的含义,因此,也比较容易掌握。若要显示或隐藏某个工具栏,则在任一工具栏的快捷菜单中选择相应的命令即可。
12.3.1Visual C++开发环境 3.项目工作区 项目是开发一个程序时需要的所有文件的集合,而工作区是进行项目组织的工作空间。利用项目工作区窗口可以观察和存取项目的各个组成部分。在Visual C++中,一个工作区可以包含多个项目。
12.3.1Visual C++开发环境 项目工作区有Class View、Resource和File View三个选项卡,分别用来浏览当前项目所包含的类、资源和文件。如果是“Win32 Console Application”程序,则没有Resource View选项卡。 在Visual C++中,项目中所有的源文件都是采用文件夹的方式进行管理的,它将项目名作为文件夹,在此文件夹下包含源程序代码文件(.cpp、.h),项目文件(.dsp)以及项目工作区文件(.dsw)等。若要打开一个项目,只需打开对应的项目工作区文件即可。
12.3.1Visual C++开发环境 (1) Class View——Class View显示当前项目的类,全局的变量和函数也在这里显示。图12-3是项目TEST的工作区Class View选项卡,表明该项目只有一个main()函数。 在“Class View”中,双击main()函数,其源代码便在右边的代码窗口中显示。 在“Class View”中,双击TEST.cpp文件,文件中的内容便显示在右边的代码窗口中。
12.3.1Visual C++开发环境 (2) File View——File View显示了当前项目的源文件、头文件、资源文件等。图12-4是项目TEST的工作区“File View”选项卡,从中看到该项目有一个.cpp文件,这是C++的源程序文件。
12.3.1Visual C++开发环境 4.代码窗口 一般位于开发环境中的右边,各种程序代码的源文件、资源文件、文档文件等都可以通过该窗口显示。 5.输出区 输出区有多个选项卡,最常用的是“编译”。在编译、连接时,这里会显示有关的信息,供调试程序用。 6.状态栏 状态栏一般位于开发环境的最低部,它用来显示当前操作状态、注释、文本光标所在的行、列号等信息
12.3.2C++程序的开发过程 1.创建空工程 (1) 选择“文件新建”命令; (2) 选定“工程”选项卡,选择“Win32 Console Application(32位控制台应用程序)”,输入工程名:TEST,确保单选按钮“R创建新工作区”被选定,输入工程位置:C:\TEST,如图12-5所示;
12.3.2C++程序的开发过程 (3) 在随后弹出的向导对话框中,选择“An empty project”,并选择“完成”,显示新建工程的有关信息; (4) 选择“确定”,创建空工程的工作结束。 此时为工程TEST创建了C:\TEST文件夹,并在其中生成了TEST.dsp、TEST.dsw、Debug文件夹。Debug文件夹用于存放编译、连接过程中产生的文件
12.3.2C++程序的开发过程 2.创建C++源文件 (1) 选择“文件新建”命令; (2)选定“文件”选项卡,选定“C++ Source File”,并输入源程序文件名Exl2_1,如图12-6所示。 (3) 输入、编辑源程序。 在这个阶段,C:\TEST文件夹中创建了Exl2_1.cpp。
12.3.2C++程序的开发过程 3.编译、连接和运行 选择“编译执行TEST1.exe”命令进行编译、连接和运行,会在输出区中显示有关信息。若程序有错,则进行编辑。 编译、连接和运行可以分别执行。 (1) 编译选择“编译编译Exl2_1.cpp”命令。编译结果显示在输出区中,如果没有错误,则生成Exl2_1.obj; (2) 连接选择“编译构建TEST.exe”命令。连接信息显示在输出区中,如果没有错误,则生成TEST.exe; (3) 运行选择“编译执行TEST.exe”命令。运行结果如图12-7所示
总 结 在C:\TEST\Debug中生成了Exl2_1.obj、TEST.exe等文件。Exl2_1.obj是编译后产生的目标代码文件,TEST.exe是最终生成的可执行文件。 至此,一个简单C++程序的编写、调试过程结束。 在整个过程中,Visual C++在C:\TEST中为该工程生成许多文件。其中得的主要文件有: (1) TEST.dsp——项目文件,存储了当前项目的特定信息,如项目设置等; (2) TEST.dsw——工作区文件,含有工作区的定义和项目中所包含文件的所有信息; (3) Exl2_1.cpp——源程序文件;
总 结 (4) Debug——该文件夹存放了编译、连接过程中生成的中间文件以及最终生成的可执行文件,其中,Exl2_1.obj是编译后产生的目标代码文件,TEST.exe是最终生成的可执行文件,是将Exl2_1.obj文件连接后得到的。 在这些文件中,Exl2_1.cpp文件是最重要的一个文件,源程序保存在这个文件中,其他文件一般都是系统自动生成的。但是,在Visual C++中,仅有.cpp文件是不能直接编译、连接的,需要首先用“构建”命令让系统自动创建一个工程并将Exl2_1.cpp文件加入到该工程中,然后才能执行各种操作。因此,程序员可以只复制.cpp文件,若要复制整个工程的文件夹,也请删除Debug文件夹,因为它占有相当多的存储空间。
本章小结 本章主要介绍C++语言的基本知识与基本概念,通过本章的学习使大家对C++有一个直观的了解,并能借助它实现一个简单程序的编辑、编译、链接、运行和调试。 C++是以C语言为基础发展起来的一种高级程序设计语言。C++语言的一个重要特点是它对面向程序设计提供了完整的支持。面向对象程序设计克服了结构化程序设计中数据和算法相分离的缺点。封装性、继承性和多态性是面向对象思想的主要特征。
本章小结 C++同时支持结构化和面向对象两种程序设计的基本框架。在C++的结构化程序设计框架中,函数是程序的基本组成单元;在C++的面向对象程序设计框架中,类是程序的基本组成单元。 由于C++加入了类的技术,所以对于类的学习和掌握是发挥C++能力的关键,类使得程序的重用性得到极大的提高,也方便了程序的维护。本章节只是抛砖引玉,读者在学完本书后,再学习C++和其他门类语言就有了很好的基础。
结束 结束