第三章面向对象分析和设计初步2009.ppt

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

2.2引用 引用是C++语言中对一个变量或常量标识符起的别名。例如,已经定义了一个变量val,然后再建立一个对这个变量的引用rval,就为变量val起了一个别名,val和rval就是指的同一个变量,它们的使用方式也完全一样。说明一个引用的方式如下: int val; // 定义vaL是整型变量 int rval= val; //声明rvaL是val的引用 说明一个引用时,在引用标识符的前面加上“”,后面跟上它所引用的标识符的名字。 当编译程序看到‘&’时,就不为其后面的标识符分配内存空间,而只是简单地将它所引用的那个标识符所具有的内存空间赋给它。 引用的作用: 1-引用作函数参数 引用在一般场合是没有什么用途的,单纯为一个变量取个别名也没有什么意义。引用最大的用途是作为函数的参数或返回值类型,从而扩充函数传递数据的功能。 我们知道,引用是它所引用的变量的一个别名,它们实际上是同一回事。因此,当函数的形参是引用类型时,它实际上是对实参所代表的变量的引用,它自己不具有独立的内存空间。这种实参传递给形参的方式称为按引用传递。 例6-16 利用“引用形参”实现两个变量的值的互换 2-引用返回值 返回引用值的函数在一般情形下并不多见,但是如果需要让函数调用作为左值时,就需要将函数返回值设计为是引用类型。函数的返回值为引用类型表示该函数的返回值是一个内存变量的别名。可以将函数调用作为一个变量来使用,可以为其赋值。 例6-18 定义了一个求两个数中最小值的函数,函数的参数是两个整型变量.返回值是对这两个数中值较小的那个变量的引用。 2.3常变量(const变量) C++中使用const修饰符来定义常量。const可以与指针一起使用,它们的组合情况较复杂,可归纳为三种: 指向常量的指针、常指针和指向常量的常指针。 1.指向常量的指针 指向常量的指针是指一个指向常量的指针变量。在指针定义语句的类型前加const修饰符,表示指向的对象是常量。例如: const char *name=chen; // 声明指向常量的指针 这个语句的含义为:声明一个名为name的指针变量,它指向一个字符型常量,初始化name为指向字符串“chen”。 2.常指针 常指针是指把指针本身是声明为常量,而不是将它指向的对象声明为常量。在指针定义语句的指针名前加const修饰符,表示指针本身是常量。例如: char * const name=chen; // 常指针 这个语句的含义为:声明一个名为name的指针常量,该指针是指向字符型数据的常指针,用字符串常量“chen”的地址初始化该常指针。 3.指向常量的常指针 指向常量的常指针是指这个指针本身不能改变,它所指向的值也不能改变。要声明—个指向常量的常指针,二者都要声明为const,并且必须在定义时进行初始化。例如: const char * const name=chen; //指向常量的常指针 这个语句的含义是:声明了一个名为name的指针常量,它是一个指向字符型常量的常指针,用字符串常量chen的地址初始化该指针。 2.4定义变量初值 定义变量的一般形式为: 变量类型 变量名表列; 变量赋初值 C++语言允许在定义变量的同时使变量初始化。如: int a=1; // 指定 a为整型变量,初值为 1 float pi=3.1415; // 指定 pi为单精度浮点型变量,初值为 3.1415 也可以使被定义的变量的一部分赋初值。如 int a,b,c=1; // 表示指定a、b、c为整型变量,只对c初始化,c的初值为1 如果对几个变量赋予同一个初值,不能写成 int a=b=c=1; 而应写成 int a=1,b=1,c=1; 可在程序中随意定义变量 char *name(“Smith”) for(int i(0); i6; i++); 2.5C++的运算符 new 动态内存分配 delete 回收new分配的内存动态 ::域作用符: 对数据成员和成员函数的限定 3. c++中的new/delete 取代 malloc/free new/delete有什么好处? malloc/free只是对内存进行分配和释放; new/delete还负责完成了创建和销毁对象的任务。 另外,new的安全性要高一些,因为new返回的就是一个所创建的对象的指针,对于malloc来说返回的则是void*,还要进行强制类型转换,这是一个危险的漏洞。 最后,我们可以对new/delete重载,使内存分配按照我们的意愿进行,这样更具有灵活性,malloc则不行。 new的使用: type * p = new type type * p = new type(

文档评论(0)

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

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

1亿VIP精品文档

相关文档