C+程序设计基础知识.ppt
《C+程序设计基础知识.ppt》由会员分享,可在线阅读,更多相关《C+程序设计基础知识.ppt(57页珍藏版)》请在三一办公上搜索。
1、C+程序设计,C+基础知识,第2章 C+基础知识,本章学习要点,从C程序到C+程序的发展历程简单的C+程序C+的输入输出、数据类型、函数及指针C+的常变量、引用、名字空间、字符串变量C+程序的编写和实现,第2章 C+基础知识,本章学习目标,了解从C程序到C+程序的发展历程对简单的C+程序有整体的感性认识掌握C+对C的扩充掌握C+的输入输出、数据类型、函数及指针掌握C+的常变量、引用、名字空间、字符串变量熟悉C+程序的编写和实现流程,2.1 从C到C+,C到C+的发展历程,C+3.0,C+1.0,带类的C,89年,增加类的多继承,91年,增加模板,增加异常处理、名字空间、运行时类型识别,97年,
2、成为标准,2.2 简单C+程序,通过简单的C+例子认识C+程序,【例2-1】在屏幕上输出一行字符“Hello C+!”。/=#include/包含头文件命令using namespace std;/使用名字空间stdint main()coutHello C+!endl;/输出字符串到屏幕return 0;/main函数返回0至操作系统/=,注意:标准C+程序和C程序的不同:main函数的返回值为整型 使用cout输出及需要用到的头文件iostream 名字空间,2.2 简单C+程序,C+的函数和C语言的函数非常相似 函数的使用仍然需要先声明后使用。如果函数定义在函数调用之后,则必须在前面声明
3、函数原型,【例2-2】通过函数求两个整数a和b的和。/=#include/包含头文件命令using namespace std;/使用名字空间stdint sum(int x,int y)return x+y;/求和的函数int main()int a,b;/定义两个变量a和bcoutab;/等待用户从键盘输入数据couta+b=sum(a,b)endl;/输出结果信息至屏幕return 0;/main函数返回0至操作系统/=,2.2 简单C+程序,【例2-3】声明一个关于人的类Person,人的信息包括姓名、性别、年龄,人可以输入自己的信息,也可以显示自己的信息。#include/包含头文件
4、命令using namespace std;/使用名字空间stdclass Person/类的声明public:/以下为类的公用成员函数void SetInfo()/公用成员函数SetInfo coutnamesexage;/输入数据至私有数据成员void Show()/公用成员函数Show cout name:name;/输出私有成员name的值cout sex:sex;/输出私有成员sex的值cout age:ageendl;/输出私有成员age的值private:/以下为类的私有数据成员char name20;/私有数据成员namechar sex2;/私有数据成员sexint age;
5、/私有数据成员age;/类声明结束,此处必须有分号,2.2 简单C+程序,int main()/main函数Person person1,person2;/定义Person类的两个对象person1,person2person1.SetInfo();/对象person1信息输入person2.SetInfo();/对象person2信息输入person1.Show();/对象person1信息输出person2.Show();/对象person2信息输出return 0;/main函数返回0至操作系统,在main函数中创建例2-3中Person类的对象,并调用对象的方法。,注意:类的定义和对象
6、的使用的语法形式类中的成员分为数据成员和成员函数,成员的可见性分为公用和私有类的概念的理解:类是一种用户自定义数据类型对象的理解:对象是类类型的变量,2.3 C+对C的扩充,在输入输出方面的扩充对数据类型的扩充常变量在指针方面的扩充引用的概念在函数方面的扩充名字空间的概念字符串变量,C+的输入输出,C语言输入输出的实现通过输入输出库函数实现C语言的输入输出存在着格式复杂、无法保证安全性、无法对自定义类型整体输入输出等缺点 C+对C输入输出的扩充C+的输入/输出(I/O)流类库“流”的思想cout、cin对象,、运算符,数据类型的扩展,基本类型,空类型,引用类型,指针类型,构造类型,C+数据类型
7、,整型、字符型浮点型布尔型,枚举、数组结构体、共用体类,2.3.3 用const定义常变量,直接常量和符号常量符号常量的缺点运行时不分配内存单元符号常量没有类型,在编译时不进行类型检查替换后的表达式和预想的表达式是否一致为了使常量也能像变量那样进行类型检查,C+提供了用const定义常变量的方法定义常变量的语法:const 类型 变量名;,2.3.3 用const定义常变量,【例2-4】利用常变量计算圆的面积。/=#include using namespace std;int main()const float PI=3.14;/定义常变量float radius=0;coutradius;
8、coutThe area of circle is:PI*radius*radiusendl;return 0;/=,注意const的位置,一般见到的const的位置可能在类型的前面,但是const也可以在变量名前面,并且两者的含义完全相同。,2.3.4 指针,指针的概念指针是一个重要概念,如果使用得当可以使程序高效、简洁、紧凑。如果对指针掌握不牢固,编程则会出现意想不到的错误 指针是内存单元的地址 经常所讲的指针是指针变量的简称,是用来存放指针(地址)的变量。本节重点讨论C+中使用指针需要注意的地方,2.3.4.1 指针与0,空指针空指针表示“未分配”或者“尚未指向任何地方”的指针 空指针一
9、般用来判断内存分配是否成功注意:“空指针”与“野指针”的区别在指针上下文中的常数0被编译成空指针 程序员更常使用符号常量NULL来表示空指针,2.3.4.1 指针与0,【例2-5】指针和0/=#include using namespace std;int main()int*p=0;/定义空指针pint*q;/定义野指针qint x=100;/定义整型变量x并初始化为100/*p=50;/若执行则编译出错,不能使用空指针*q=50;/编译通过,但不知把50写到何处p=q=/输出变量x的值/=,注意编程时养成定义指针时初始化为空指针,使用指针时判断是否为空指针的好习惯,可以减少程序中指针的许多
10、错误。,2.3.4.2 指针与const,【例2-6】指向const变量的指针。/=#include using namespace std;int main()const int*p=NULL;/定义指向const变量的指针pconst int a=10;/定义常变量ap=/=,通过本例可以看到可以改变指向const变量的指针的指向,但是不能通过指针修改指针指向单元内容,2.3.4.2 指针与const,通过本例可以看到可以改变const指针指向单元的内容,但是不能改变const指针的指向。,【例2-7】const指针。/=#include using namespace std;int m
11、ain()int a=10;/定义普通变量aint b=100;/定义普通变量bint*const p=/=,2.3.4.2 指针与const,对于指向const变量的const指针,既不能改变指针指向单元的内容,也不能改变指针的指向。,【例2-8】指向const变量的const指针。/=#include using namespace std;int main()int a=10;int b=100;const int*const p=/=,2.3.4.2 指针与const,小结指针和const的关系比较复杂,const有两个位置,可形成三种指针:1.只在“*”之前有const的指针,称为指
12、向const变量的指针;2.只在“*”之后有const的指针,称为const指针;3.“*”前后都有const的指针,称为指向const变量的const指针。,2.3.4.3 void指针,void在作为函数类型和参数类型时为空类型,表示没有返回值或参数。void修饰指针时称为“无类型指针”,表示该指针可以指向任意类型的变量。虽然void指针可以指向任意类型的数据,但是在使用void指针时必须对其进行强制类型转换成它所指向单元的实际类型,然后才可以使用,2.3.4.3 void指针,【例2-9】void指针的声明与使用。/=#include using namespace std;int ma
13、in()int x=100;void*p=/=,2.3.4.3 void指针,为什么要使用void指针因为void指针可以指向任意类型的数据,所以使用void指针时把void指针所指向的数据给抽象化了,这样可以增加程序的通用性 使用void指针的两个例子,void*memcpy(void*dest,const void*src,size_t len);,void*malloc(unsigned int size);,2.3.4.4 new和delete,C语言的动态内存管理malloc()和free()函数主要缺点函数的返回值是void*类型 分配内存单元时根据参数size的值来分配,无法检查
14、错误分配到的内存单元无法初始化C+中使用new和delete运算进行动态内存管理,2.3.4.4 new和delete,【例2-11】使用new和delete动态管理内存单元。/=#include using namespace std;int main()int*p=NULL;/定义整型指针p p=new int;/用new申请可以存放一个整型数据的内存单元 cout*p=*pendl;/输出指针p指向单元的内容 delete p;/delete释放指针p指向内存单元 return 0;/=,2.3.4.4 new和delete,申请内存空间并进行初始化 指针变量=new 数据类型(初值);
15、分配多个连续变量的存储空间 使用new 和delete 指针变量=new 数据类型元素个数;delete 指针变量;,三种动态内存管理的方式:兼容C语言的malloc/free方式,单个变量的new/delete方式,多个变量的new/delete 方式,2.3.5 引用,引用就是某一变量的别名,对引用的操作与对变量直接操作完全一样 引用的声明方法 类型标识符,“&”运算符在变量的前面表示取地址运算,在赋值运算任的左侧是引用运算符,这种在不同的上下文环境中具有不同含义的现象,称之为运算符功能重载。,2.3.5 引用,【例2-12】使用引用访问变量。/=#include using namesp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础知识
链接地址:https://www.31ppt.com/p-6154079.html