C语言课件第14章 C++对C的扩充

上传人:qiuji****ngye 文档编号:46066651 上传时间:2018-06-21 格式:PPT 页数:32 大小:177.50KB
返回 下载 相关 举报
C语言课件第14章 C++对C的扩充_第1页
第1页 / 共32页
C语言课件第14章 C++对C的扩充_第2页
第2页 / 共32页
C语言课件第14章 C++对C的扩充_第3页
第3页 / 共32页
C语言课件第14章 C++对C的扩充_第4页
第4页 / 共32页
C语言课件第14章 C++对C的扩充_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《C语言课件第14章 C++对C的扩充》由会员分享,可在线阅读,更多相关《C语言课件第14章 C++对C的扩充(32页珍藏版)》请在金锄头文库上搜索。

1、第14章 C+对C的扩充C+与C语言的关系:C语言是C+的一个子集,C+包含了C 语言的全部内容。 1、C+保持与C语言的兼容,现有的许多C代码不经修改就可 以为C+所用。 2、C+对C语言作了很多改进: 增加了一些新的运算符,使得C+应用起来更加方便。 改进了类型系统,增加了安全性。 引进了“引用”概念,使用引用作函数参数带来了很大方便。 允许函数重载,允许设置缺省参数,这些措施提高了编程的 灵活性,减少冗余性。又引进了内联函数的概念,提高了程序 的效率。 对变量说明更加灵活了。可以根据需要随时对变量进行说明 。14 14. .1 1 C+C+概述概述14.2 C+程序结构n例14.1n /

2、This is a C+ program.n #include n void main( )n double x,y;n coutxy;n double z=x+y;n cout是重载的运算符,将键盘中输入的一个数,送到它右边的变量中保存 起来。n5)endl表示输出新行。nC+程序的源文件约定使用扩展名.cpp或.cxx,头文件约定 使用扩展名.h 或.hpp或.hxx。编辑好的源程序经过C+编译 器编译成目标文件,其扩展名是.obj,再经过C+连接器, 将目标文件与库文件中的一些代码连接起来,生成一个可 执行文件。程序被运行后,一般在屏幕上显示出运行结果 。14.3 C+的I/O流cin和

3、coutn在C+中提供了新的输入/输出方式。其主要目标 是建立一个类型安全、扩充性好的输入/输出系统 。C+的输入/输出流库是建立在流的概念上。流 类似于文件,可以把流看成是一个无限长的字符序 列,它可以被顺序访问。从流中获取数据的操作称 为提取操作。向流中添加数据的操作称为插入操作 。C+的输入/输出流库不是语言的一部分,而是 作为一个独立的函数库提供的。因此,在使用时需 要包含相应的头文件“iostream.h”。输出操作被认 为是插入过程,由重载的插入符“”来实 现。 n最一般的屏幕输出是将插入符作用在流类的对象 cout上。例如:n#include nmain()n int a=5,b

4、=12;ncoutn int a,b;n cinab;n coutn int add(int ,int);n double add(double,double);n void main( )n coutnint max(int a, int b);nint max(int a, int b, int c);nvoid main( )n coutb?a:b; nint max(int a,int b, int c)n int t;nif (a=b) t=a;n else t=b;n if (ct) t=c;n return t; n函数重载要求编译器能够唯一地确定调用一个函数时应执行 哪个函数代

5、码,即采用哪个函数实现。确定函数实现时,要 求从函数参数的个数和类型上来区分。也就是说,进行函数 重载时,要求同名函数在参数个数上不同,或者参数类型上 不同。否则,将无法实现重载。n使用函数重载主要是为了处理一组完成相同或相似功能的任 务,但处理的数据个数或类型不同,这样,编程时可以不必 费力的给它们起名和记忆。n如果两个函数参数个数和类型完全相同,仅仅是返回值不同 ,它们不是重载的函数。程序中出现这样两个函数,编译时 将出错。n函数重载可以使某些具有相似功能的函数聚集起来共同使用 一个通常具有特定语义的函数名,但是当聚集起来的函数并 不执行相似的操作时,就不应采用函数重载。14.5 引用n引

6、用也是一种特殊类型的变量,它通常被认为是另一个 变量的别名。定义引用变量的格式:n 类型 n引用一般要立即进行初始化。无初始化的引用是无效的 。n引用与被引用的实体具有相同的地址,引用本身不能改 变,所有在引用上所施加的操作,实质上就是在被引用 者上的操作。 n例如: int i=5,n可以将一个引用赋给某个变量,则该变量将具有被引用 的变量的值。例如: int n=m;n这时,n具有被m引用的变量i的值,即10。n例14.4:n #include n void main()n int i=5; n int n coutn void main()n int i=5;n int *pi=n in

7、t * /对指针的引用n coutn void swap(int nm=n;nn=temp; nvoid main()n int a=2,b=4;n swap(a,b);n coutn int a =1,3,5,7,9;n int n void main()n int j;n for(j=1;jninline int power_int(int x)n return (x)*(x); nvoid main()n int i;nfor(i=1;in void fun(int a=1,int b=3,int c=5)n coutn int m(8); /*等价于:int m=8; */n int

8、add_int(int x,int y=7,int z=m);n void main( )n int a(5),b(15),c(20);n int s=add_int(a,b);n coutn const int N=6;n void print(const int *p,int n);n void main()n int arrayN;n for(int i=0;iarrayi;n print(array,N); n void print(const int *p,int n)n coutnvoid main()n int *p;n p=new int;n *p=888;n cout“add

9、_p=“n cout“add_m=“pendl;n cout“value_*p=“*pendl;n delete p; n运行结果如下:nadd_p=0x0065fdf4nadd_m=0x00780da0nvalue_*p=888nnew能自动计算它要分配的存储空间的大小,可以 为更复杂的数据实体(如数组)分配空间,如语 句:n int *pi=new int8; n动态分配存放8个整数的内存空间。释放pi指向的 数组存储区时,应使用下面的格式:n delete pi;nnew可以在为简单变量动态分配内存空间的同时, 进行初始化。例如:n int *p=new int(10);n在动态分配内存的同时,将这个动态存储区中的 值初始化为10。但是,不能用new为动态分配的数 组存储区进行初始化。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号