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的变化

最近更新

内蒙古呼伦贝尔市事业单位招聘考试(职业能力.. 147页

内蒙古赤峰市事业单位招聘考试(职业能力倾向.. 148页

北京市事业单位招聘考试(职业能力倾向测验).. 148页

国家保安员考试题库带答案(培优b卷) 33页

山东省滨州地区选调生考试(行政职业能力测验.. 146页

江苏省扬州市选调生考试(行政职业能力测验).. 148页

河北省张家口市事业单位招聘考试(职业能力倾.. 147页

河北省邢台市事业单位招聘考试(职业能力倾向.. 147页

河南省焦作市选调生考试(行政职业能力测验).. 148页

湖北省宜昌市选调生考试(行政职业能力测验).. 149页

湖南省衡阳市选调生考试(行政职业能力测验).. 146页

黑龙江省鸡西市选调生考试(行政职业能力测验.. 147页

冷沉淀技术在胃肠疾病手术中的应用概述 33页

冷沉淀对免疫系统的影响及其临床意义分析 28页

冷沉淀在慢性肾小球肾炎治疗中的应用前景 28页

县乡教师选调考试《教师职业道德》题库推荐 41页

县乡教师选调进城考试《教育心理学》题库及参.. 122页

县乡教师选调进城考试《教育心理学》题库附完.. 120页

县乡教师选调进城考试《教育法律法规》题库含.. 127页

职业教育法考试题库含答案【巩固】 26页

冠状动脉搭桥术后的肌肉康复与神经功能恢复计.. 26页

冠状动脉搭桥术后患者的出院规划 33页

冠状动脉搭桥手术后的切口护理 32页

农村住房补贴申请书 2页

WinCC V7.3 C脚本手册 38页

矿山地质工作在矿山生产过程中的作用 6页

渗滤液(初级)试题(共35页) 35页

最新封顶仪式讲话稿(讲话稿范文) 5页

铁路集装箱运输安全管理方法探讨 75页

创业与创新管理ppt课件 83页