网站大量收购闲置独家精品文档,联系QQ:2885784924

C++对C扩展功能.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C对C扩展功能

C++对C的扩展功能 朱晓旭 苏州大学计算机科学与技术学院 注释 C语言注释 /* */ C++注释 /* */ 注释一段 // 注释一行或一行的后半部分 更加灵活 良好注释可以增强程序可读性 注释是调试程序的常用手段 定义局部变量 C语言 规定局部变量必须定义在函数的第一个可执行语句之前 古板 C++ 只要保证在使用之前定义 按需定义,方便灵活 引用 引用是别名 int i,j; int ri=i; //建立一个int型的引用ri,并将其 //初始化为变量i的一个别名 j=10; ri=j;//相当于 i=j; 与取地址符类似 如何区分? 引用的类型和被引用类型应该相同 引用(续) 声明一个引用时,必须同时对它进行初始化,使它指向一个已存在的对象。 一旦一个引用被初始化后,就不能改为指向其它对象。 C语言函数参数的传递 按值传递:最多 按地址传递:靠数组和指针实现 C++添加了引用传递参数 例 输入两个整数交换后输出 #includeiostream.h void Swap(int a, int b); int main( ) { int x(5), y(10); coutx=x y=yendl; Swap(x,y); coutx=x y=yendl; return 0; } Swap用传值方法编写 void Swap(int a, int b) { int t; t=a; a=b; b=t; } 运行结果(不能交换) x=5 y=10 x=5 y=10 Swap用传址方法编写 void Swap(int* a, int* b) { int t; t=*a; *a=*b; *b=t; } Main中调用语句需要修改为 Swap(x,y) 运行结果: x=5 y=10 x=10 y=5 Swap用传引用方法 void Swap(int a, int b) { int t; t=a; a=b; b=t; } 运行结果: x=5 y=10 x=10 y=5 引用(续) 引用作为形式参数的优点 书写简单 高效(节约存储) 可以从函数中带回值 函数需要返回多个值,可以使用 内联函数 声明时使用关键字 inline。 编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销。 注意: 内联函数体内不能有循环语句和switch语句。 内联函数的声明必须出现在内联函数第一次被调用之前。 是请求,不是命令 以空间换时间 内联函数例子 #includeiostream.h inline double CalArea(double radius) { return 3.14*radius*radius; } int main( ) { double r(3.0); double area; area=CalArea(r); coutareaendl; return 0; } 具有缺省参数值的函数 函数在声明时可以预先给出默认的形参值 调用时如给出实参,则采用实参值 否则采用预先给出的默认形参值 具有缺省参数值的函数(续1) 可以提供多个参数的,但必须靠右原则 否则导致二义性 例: int add(int x,int y=5,int z=6) //正确 int add(int x=1,int y=5,int z) //错误 int add(int x=1,int y,int z=6) //错误 具有缺省参数值的函数(续2) 也可以通过函数声明的方式提供缺省参数值 缺省形参值的作用域 在相同的作用域内,缺省形参值的说明应保持唯一,但如果在不同的作用域内,允许说明不同的缺省形参。 例: int add(int x=1,int y=2); void main(void) { int add(int x=3,int y=4); add( ); //使用局部缺省形参值(实现3+4) } void fun(void) { ... add( ); //使用全局缺省形参值(实现1+2) } 重载 面向对象的重要特征之一 静态的多态 所谓重载就是同一个符号在不同的上下文中代表不同的含义。 分类 重载函数 重载运算符 方便使用,便于记忆 一个实际问题 C语言中求绝对值 int abs(int) double fabs(double) long labs(long) 函数的调用者负担大 能否三个函数具有相同名称? 重载函数 重载函数 功能相近的函数在相同的作用域内具有相同函数名 要求: 函数形式参数类型不同 int a

文档评论(0)

1444168621 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档