下载此文档

对象的构造与析构.ppt


文档分类:论文 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
对象的构造与析构
第一页,共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的变化

对象的构造与析构 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库新人
  • 文件大小936 KB
  • 时间2021-10-13
最近更新