



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一new功能、用法、回收、及与指针的联系数组从0开始在内存中开辟了4个int型的数据空间,即16个字节利用 new 运算符可以在程序中动态开辟内存空间new int4;new 相当于一个函数,在内存开辟完空间后,返回这个空间的首地址,这时,这个地址必须用一个指针保存下来,才不会丢失。Int *p P指向6(new 开辟的空间)P=new int*p=6可以用*P对这个空间进行运算同样利用new运算符可以开辟连续的多个空间(数组)P指向新开辟空间的首地址Int n,* P;Cinn,P=new int n;For (int i=0;ipi;可以用Pi的形式来引用新开辟的内存单元注意:用new开辟的内存单元没有名字,指向其首地址的指针是引用其的唯一途径,若指针变量重新赋值,则用new开辟的内存单元就在内存中“丢失”了,别的程序也不能占用这段单元,直到重新开机为止。用 new 运算符分配的空间,不能在分配空间时进行初始化。同样,用new开辟的内存单元如果程序不“主动”收回,那么这段空间就一直存在,直到重新开机为止。delete算符用来将动态分配到的内存空间归还给系统,使用格式为: delete p;int *point;point=new int;只有用new开辟的空间才能用delete收回。.delete point;elete也可以收回用new开辟的连续的空间。nt *point;cinn;point=new intn;.delete point;求两程序中的大着oid main(void ) int *p1, *p2; p1=_new int p2=_new int cin*P1*P2_; if (*p2*p1) *p1=*p2; delete p2; cout“max=” _*P1_endl;delete p1; 引用 、看程序、指针用法、引用区别: & = ;其中原变量名必须是一个已定义过的变量。如:int max ;int &refmax=max;refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。引用类型变量的初始化值不能是一个常数。如:int &ref1 = 5; / 是错误的。int &ref=i;引用在定义的时候要初始化引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。nt a, *p;int &m=a;变量的引用p=&m;变量的地址*p=10;可以用动态分配的内存空间来初始化一个引用变量。float &reff = * new float ; /用new开辟一个空间,取一个别名reff reff= 200;/给空间赋值 cout reff ;/输出200 delete &reff;/收回这个空间这个空间只有别名,但程序可以引用到。指针与引用的区别:1、指针是通过地址间接访问某个变量,而引用是通过别名直接访问某个变量。2、引用必须初始化,而一旦被初始化后不得再作为其它变量的别名。当&a的前面有类型符时(如int &a),它必然是对引用的声明;如果前面无类型符(如cout&a),则是取变量的地址。以下的声明是非法的1、企图建立数组的引用 int & a9;2、企图建立指向引用的指针 int & *p;3、企图建立引用的引用 int & &px;引用作为形参,实参是变量而不是地址,这与指针变量作形参不一样。void change(int &x, int &y) int t; t=x; x=y; y=z;void main(void) int a=3,b=5; change(a,b); /实参为变量 coutatbendl; 指针变量做形参:void change(int *x, int *y) int t; t=*x; *x=*y; *y=z;void main(void) int a=3,b=5; change(&a,&b); /实参为地址 coutatbendl; 由于函数调用返回的引用类型是在函数运行结束后产生的,所以函数不能返回自动变量和形参。返回的变量的引用,这个变量必须是全局变量或静态局部变量,即存储在静态区中的变量。 在C+中对象的类型称为类(class)。类代表了某一批对象的共性和特征。类是对象的抽象,而对象是类的具体实例(instance)。 类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的运算封装在一起的 集合体。面向对象程序设计的四个特点:抽象、封装、继承、多态性类将一些数据及与数据相关的函数封装在一起,使类中的数据得到很好的“保护”。在大型程序中不会被随意修改。派生方式权限 雷内声明、类外定义函数规定创建对象 虚函数、指针问题、对象重在与虚函数的区别函数不能作为左边的值,只能返回值被引用时,才可放在左边,即给赋值 函数引用作为返回值时先调用后赋值构造函数是在创建对象时候使用给定的值将对象初始化,每个对象必有与其对应的构造函数析构函数相反是在释放对象的时候对对象做善后工作,即在对象生命期结束时 结束系统为对象所分配的空间,即撤销对象构造函数可带参数,可重在,无返回值,系统约定构造函数必须与雷鸣同,且无void 构造函数不能带任何参数 无返回值不可制定函数类型 不能重在 故意各类中只能有一个析构函数 用new开辟的空间时候 应该对析构函数声明 释放对象空间及动态分配空间必须用delete才能释放new分配的空间 此时只用执行delete 对象才消失 则出现调用析构函数一个对象可构造多个构造函数 可以给定参数缺省值 构造函数必须为私有的,如果构造的类及用于派生其他类时 可以将构造函数定义为保护的成员函数 对于全局对象,实在main函数 程序开始时候调用构造函数 程序结束调用析构函数对于局部变量,程序执行到时,调用构造函数 函数作用域结束时候 调用析构函数对于静态对象,程序执行到时候调用构造函数 程序结束时候调用析构函数对于new产生的对象,程序运行到时候调用构造函数,执行到delete时候调用析构函数在程序中如果有new 则西沟函数必须要显示出来 对于产生链式对象 赋值后 立即释放空间临时对象用到时候产生构造函数,但用完几十分由调用构造函数函数内定义的类仅作用与函数 函数外定义的累可以作用与文件作用域 类可以嵌套,A中嵌套B 当定义对象时候并不分配空间只有定义对象时候才分配空间然后对对象分配空间嵌套类的作用于在A定义结束时才结束类的定义:类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的运算封装在一起的 集合体。类将一些数据及与数据相关的函数封装在一起,使类中的数据得到很好的“保护”。在大型程序中不会被随意修改。类的定义格式:class 类名 private : 成员数据;成员函数; public : 成员数据;成员函数; protected:成员数据;成员函数;作用域:类体的区域称为类作用域。类的成员函数与成员数据,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业煤炭销售合同范本
- 毕业租房合同范本
- 餐厅采购材料合同范本
- 立邦刷新服务合同范本
- 临沂物业合同范本
- 喷漆外加工合同范本
- 场地出租专用合同范本
- led路灯设计合同范本
- 2025年紫外线灯管消毒监测培训考试题及答案
- 2025年银行业务与经营考试题库及答案
- 《项目的变更管理》课件
- 人教板七年级至九年级英语单词表
- 安全主任竞聘演讲稿
- 2025-2030年中国化学纤维市场发展格局及投资前景规划研究报告
- 维护保养及售后服务说明
- 大学启示录:如何读大学(上海交通大学)学习通测试及答案
- 《静脉输液指南》课件
- AI技术赋能体育课堂教学评价
- 耳穴压豆课件完整版
- DBJ41T 256-2021 河南省海绵城市设计标准 河南省工程建设标准(住建厅版)
- 独家授权合同模板
评论
0/150
提交评论