1 / 17
文档名称:

对象的构造与析构.ppt

格式:ppt   大小:936KB   页数:17页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

对象的构造与析构.ppt

上传人:文库新人 2021/10/13 文件大小:936 KB

下载得到文件列表

对象的构造与析构.ppt

相关文档

文档介绍

文档介绍:对象的构造与析构
第一页,共17页
一、对象构造与析构的作用
完成实验报告中的任务1、任务2,对照课本内容,理解构造函数、析构函数的调用方法与作用。
完成实验任务3,观察程序运行的输出结果,理解“复制”构造函数在函数调用中的作用。
第二页,共17页
二、动态内存分配程序设计
数组的定义:int a[10];只能说明长度不变的数组,而在实际应用中,我们希望数组的长度可以随时改变,或者由用户设定,这个要求可以通过“动态内存分配”技术实现。
动态内存分配:在程序运行过程中,根据需要在内存中进行内存分配,称为动态内存分配。
相关知识的学习:(预习方法:运行示例程序)
第三页,共17页
动态内存分配程序设计
程序使用的内存空间示意图:
栈区
堆区
全局数据区
程序代码区
栈区
函数形参、局部变量
在程序编译时分配
堆区
在程序运行过程中
分配的存储
全局数据区
程序代码区
第四页,共17页
C++堆内存分配:运算符 new 和 delete
1.new:
申请一个整型的空间:
int *ip;
ip=new int; *ip=10;
申请一个整型空间并同时初始化:
ip=new int (5); cout<<*ip<<endl;
申请长度为10 的一维数组(数组的长度是可变的)
int *ap;
ap=new int[10];//注意:不能对动态数组初始化
for (int k=0;k<10;k++) cin>>ap[k];
动态内存分配程序设计
从堆中分配一个整型存储空间,返回指向内存的指针。
从堆中分配一个整型存储空间并初始化为5
从堆中分配连续10个整型存储空间
第五页,共17页
动态内存分配程序设计
2.Delete: 把申请的堆内存空间还给系统:
int *ip;
ip=new int; *ip=10;
delete ip;
int *ap;
ap=new int[10];
for (int k=0;k<10;k++) cin>>ap[k];
delete [ ]ap;//表示归还一组空间
第六页,共17页
例1:运用动态内存分配申请一个数组,长度从外部输入:
int n,*ip,*tp;
cin>>n;
ip=new int[n];
for (int k=0;k<n;k++) cin>>ip[k];//下标法
//指针法:ip固定
for (k=0;k<n;k++) *(ip+k)=2*(ip+k);
//指针法:tp可变
for (tp=ip;tp<ip+n;tp++) *tp=2*tp;
delete []ip;
思考题:这样的语句有什么问题?
for (;ip<ip+n;ip++) *ip=2*ip;
动态内存分配程序设计
第七页,共17页
动态内存分配程序设计
例2:程序可接收一个不定长的字符串:
void main(){
char *cp;
int len;
cout<<“请输入字符串的长度:”;cin>>len;
cp=new char[len+1];
cin>>cp;
cout<<cp<<endl; delete []cp;
}
第八页,共17页
动态内存分配程序设计
例3:程序可接收一个不定长的字符串(带输入容错)
“容错”就是当用户输入不正确时,程序能对错误进行处理,确保程序不会产生严重后果。
void main(){
char *cp;
int len, count=3; //最多可允许三次输入错误
do {
cout<<“请输入字符串的长度(>0):”;cin>>len;
}
while (count-->0&&len>0);
if (count==0) exit(0); //中止程序运行
cp=new char[len+1];
cin>>cp;
cout<<cp<<endl;
delete []cp;
}
第九页,共17页
动态内存分配程序设计
实验任务4:编程实现可变长度的数组,并按要求设置断点,理解指针的运用。(把实验结果记录在作业本并提交)
#include <>
void main() {
int n,*ip,*tp;
cin>>n; //输入所需数组的长度
ip=new int[n]; //此处设置断点观察ip的值, ip有什么意义?
for (int k=0;k<n;k++)
cin>>ip[k]; //在此处设置断点观察ip, k的变化

最近更新

二零二五年度节能减排贷款担保服务协议3篇 48页

二零二五年度航空航天产业战略合作框架协议3篇.. 53页

二零二五年度老旧小区房东租赁管理协议3篇 47页

二零二五年度绿色环保房屋租赁合同范本3篇 45页

二零二五年度绿色建筑技术出资实施合同 18页

二零二五年度综合性医疗机构专用耗材供应协议.. 55页

二零二五年度空调设备检修与维护服务协议3篇 52页

二零二五年度矿山挖机施工安全生产协议3篇 55页

二零二五年度电影主题公园运营管理合同3篇 52页

二手车卖车授权委托书3篇 45页

二手房产买卖协议范例3篇 47页

部编二年级语文公开课大禹治水时PPT课件一等奖.. 31页

心血管系统药理 72页

癌痛宣教专题知识 30页

校园电子租策划书 33页

一英语谓语动词有两种语态 51页

SAP计划策略总结 8页

新备课表格样式 8页

多发性内分泌腺瘤 33页

六堡茶规定茶艺使用设备及器具清单、广西六堡.. 3页

制药工程导论专家讲座 76页

商铺租赁合同下载(2025版) 15页

重症医学面试简答题 14页

口腔门诊部可行性研究报告(通用3篇) 8页

云南省人民政府办公厅转发省建设厅等部门关于.. 13页

造口护理操作的考核评分标准 1页

《商业银行管理》第三章投资管理 89页

人脐带间充质干细胞的提取和培养方法 9页

大学校区田径场与足球场围网改造施工方案 29页

wincc使用用户归档实现报表 17页