第一学时 从C到C++.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
引用传递的特点 消除了复制大量数据的开销,有利提高执行效率; 在被调用函数中直接使用形参变量,提高可读性; 安全性较差,被调用函数能直接访问和修改调用者的数据。 若要传递较大的对象,用常量引用参数模拟按值调用. 要指定引用常量,在参数声明的类型说明符前面加上const。 int change_it ( const int value); 参数的按引用传递 (7)引用 引用的目的是为了消除指针 引用顾名思义就是引用这个变量 引用必须初始化。引用总是指向在初始化时被指定的对象,以后不能改变。 不存在指向空值的引用。所以在使用引用之前不需要测试它的合法性。 int a; int b=a; C++对C语言的扩展 C++特性:引用 (8)函数重载 C++语言可实现函数重载,即多个函数在同一作用域可以用相同的函数名,编译器在编译时可以根据实参的类型来选择应该调用的函数。在C++中,对相同功能但参数类型不同的函数可以使用相同的函数名,在调用时无需记忆多个函数名,而由编译器根据参数类型选择。 2. C++对C语言的扩展 int iNum1=5,y=iNum2; double dNum1=1.2, dNum2=2.3; float fNum1=1.1f, fNum2=2.2f; cout compare(iNum1,iNum2) compare(dNum1,dNum2) compare(fNum1,fNum2); int compare( int x, int y) { if(xy) return 1; else return 0; } int compare( float x, float y) { if(xy) return 0; else return 1; } int compare( double x, double y) { if(xy) return 0; return 1; } int compare(char c1, char c2) { return c1c2? 0 : 1; } 重载函数 (9) 缺省参数 在C++语言中,函数参数允许使用缺省值。当函数调用时,若给出的参数个数少于函数表中参数的总数时,则所缺参数自动取函数参数表中设置的缺省值。 void f(int x, int y=10) { …… } f(2);//f(2,10)。 函数可以有多个缺省参数,但应注意只能从右往左缺省,例如: int f1(int x, int y=0, int z=0); //正确 int f2(int x, int y=0, int z); //错误 2. C++对C语言的扩展 函数重载和函数参数的默认值一起使用 可能出现什么问题呢? int f(int x, int y=0, int z=0); int f(int x, int y); f(3,4,5) ; f (6,7);//二义性出现 (10)内联函数 声明时使用关键字 inline。 编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销。不是在调用时 注意: 内联函数体内不能有循环语句和switch语句。 内联函数的声明必须出现在内联函数第一次被调用之前。 对内联函数不能进行异常接口声明。 内联函数应用举例 #include iostream using namespace std; const double PI = 3.14159265358979; inline double calArea(double radius) { return PI * radius * radius; } int main() { double r = 3.0; double area = calArea(r); cout area endl; return 0; } 自学读书内容:教材1-3章 (下周上课时上交个人读书笔记与分组讨论记录) 上机自己完成实验1(程序1-5题) 实验1中思考题,自己作答,上课提问作为平日成绩。 课后作业 * 移植性与标准化 高级语言中的低级语言-UNIX B为无类型语言,C编译器的类型错误不易发现 程序规模大,复杂程度高时 * 在C语言和其他过程化编程语言中,编程是面向操作的(action-oriented),在C语言中,编程的单位是函数(function), 而在C++中,编程是面向对象的(object-oriented)。而在C++中.编程的单位是类(class),对象最终要通过类实例化。 * 1980

文档评论(0)

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

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

1亿VIP精品文档

相关文档