c++面向程序设计.2研讨.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c面向程序设计.2研讨

1.2 用const定义常变量 C语言中,用#define 定义常量: #define PI 3.14159 #define R a+b 它只是在预编译时进行字符置换,将标识符置换成表达式或数字。预编译后,标识符PI,R不再存在。PI,R不是变量,没有类型,不占用存储单元,很容易出错: int a=1;b=2; #define PI 3.14159 #define R a+b coutPI * R * R; 输出的不是3.14159 * (a+b) * (a+b),而是 3.14159 * a+b * a+b。 程序因此出错。 C++进行了改进,用 const 定义常变量。如: const float PI = 3.14159; 它定义了常变量PI,有数据类型,占用存储单元,有地址,可以用指针指向它,只是在程序运行中,此变量的值固定,不能改变。 常变量定义时,const 与指针结合使用,可以有如下三种不同的定义: const float *ptr = 3.14159; //指向常变量的指针,数值3.14159不能改变为其它值 float const *ptr = 3.14159; //指向变量的常量指针,指针地址不能改变 const float const *ptr = 3.14159 ; //指向常量的常量指针 1.3.4 函数的重载(overloading) 什么叫重载? 运算符“”是右移运算符,在C++中,有作为输出算符;而“*”是乘法算符,也是指针符号。这种一个标识符有多种含义用途的现象,旧叫“重载”(overloading)。如果标识符为运算符,就叫“运算符重载”;如果标识符为函数名,就叫“函数重载”。 什么时候用到重载? 用于相类似而又不同的操作。例如,求多个数值的最大数,不同类型的参数,C语言要编写不同的函数: int max1(int a, int b, int c); // 3个整形数值求最大值 float max2(float a, float b); // 2个实形数值求最大值 long max3(long a, long b, long c); // 3个长整形数值求最大值 定义函数模板的一般形式为: template typename T? 或? template class T 通用函数定义? 在建立函数模板时,只要将例4.5程序中定义的第一个函数首部的int改为T即可?即用虚拟的类型名T代替具体的数据类型?在对程序进行编译时,遇到第13行调用函数max(i1,i2,i3),编译系统会将函数名max与模板max相匹配,将实参的类型取代了函数模板中的虚拟类型T?此时相当于已定义了一个函数: int max(int a,int b,int c) { ? ?if(ba) a=b; ? ?if(ca) a=c; ? ?return a; } 然后调用它?后面两行(14,15行)的情况类似? 类型参数可以不只一个,可以根据需要确定个数?如 ? ? template class T1,typename T2 可以看到,用函数模板比函数重载更方便,程序更简洁?但应注意它只适用于函数的参数个数相同而类型不同,且函数体相同的情况,如果参数的个数不同,则不能用函数模板? 由此程序可以看到,函数模板比函数重载更方便,但模板只适用于函数的参数个数相同而类型不同,且函数体相同的情况。不满足这种情况时,就只能使用函数重载。 1.6 有默认参数的函数 背景:一般情况下,函数调用时,形参从实参那里取得值。因此要求实参的个数和类型应该与形参相同。但是,有时候,多次调用同一函数时用的是同一实参数,或者调用时还不好确定实参数。C++提供一个简单的解决办法,即给参数一默认值。这样当不提供实参数时,形参就用默认参数作为参数值。 示例:有一函数声明为: float area ( float r=6.5 ); 调用area 函数时,如果不提供实际参数给r,r 就以默认数值 6.5 作为参数顶用area: area ( ); // 相当于 area (6.5 ); 注意: 1) 当有多个参数时,如果只有部分参数有默认值,则指定了默认值的参数必须放在参数表的最右边,否则出错。因为实参与形参的结合是从左至右顺序进行的,第一个实参必须给第一个形参,第二个实参必须给第二个形参…。 1.7 变量的引用(reference) 什么叫引用?变量的引用就是变量的别名。建立引用的作用,是为一个变量另取一个名字,以便在需要的时候间接地引用该别名。 如何使用引用?假如有一个变量a , 想给它另取一个别名b ,可以这样写: int a ; int

文档评论(0)

骨干 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档