文章目录

  • 一、动态空间申请
  • 二、动态对象的使用

一、动态空间申请

#include <iostream>
#include <string.h>
#include <stdlib.h>  //需要用到malloc
using namespace std;//定义一个盒子类
class Box
{public:Box()  //定义构造函数 {cout << "Box的无参构造" << endl;}~Box()  //定义析构函数 {cout << "Box的析构函数" << endl;}int a;  //私有成员数据
};//在C语言中动态申请空间
void test01()
{//用malloc申请一段动态内存空间 Box *p= (Box*)malloc(sizeof(Box));    //空间大小为类Box的大小 free(p);  //使用完了释放内存空间
} //在C++语言中申请普通类型的动态空间:类型名 *p= new 类型名,p2是一个指针
void test02()
{//申请一段int类型的空间并赋值给p2指针,大小为sizeof(int) int *p2= new int;  *p2= 99;cout << "*p2= " << *p2 << endl;delete p2;  //使用完了释放内存空间
} //在C++语言中申请自定义类的动态空间,p3是一个对象指针
void test03()
{//申请一段Box类型的空间并赋值给p3指针,大小为sizeof(Box) Box *p3= new Box; (*p3).a= 666;cout << "p3对象中的a= " << (*p3).a << endl;delete p3;  //使用完了释放内存空间
} //在C++语言中申请数组的动态空间,p4是一个数组
void test04()
{int *p4= new int[10];  //申请一段int数组类型的空间,大小为sizeof(int[10]),实际上该指针指向的是数组元素的首地址 //给数组元素赋值for(int i=0; i<10; i++){p4[i]= i+10;} //输出数组元素的值 for(int i=0; i<10; i++){cout << p4[i] << " ";} cout << endl;//释放内存空间,不能直接delete p4;  这样只是释放了首元素的空间delete []p4;
}int main()
{//test01();//test02();test03();test04();return 0;
}

二、动态对象的使用

#include <iostream>
#include <string.h>
#include <stdlib.h>  //需要用到malloc
using namespace std;//定义一个盒子类
class Box
{public:Box()  //定义构造函数 {cout << "Box的无参构造" << endl;}//使用初始化列表定义有参构造函数Box(int h, int w, int len):height(h), width(w), length(len)   {cout << "Box的有参构造" << endl;}~Box()  //定义析构函数 {cout << "Box的析构函数" << endl;}
private:int height;  //私有成员数据 int width;int length;
};//定义测试函数
void test()
{//申请一段Box类型的动态空间并赋值给p指针,大小为sizeof(Box)//并传入构造函数的参数 Box *p= new Box(1, 2, 3);   delete p;  //释放申请的内存空间 // //申请动态空间,调用无参构造的对象数组 cout << "-------------------------"  << endl; Box *p2= new Box[5];   delete []p2;  //释放对象数组的内存空间
} int main()
{test();
}

C++动态空间申请、动态对象(new与delete运算)相关推荐

  1. C++类对象成员、动态对象、new、delete运算符申请动态空间(C++初学面向对象)

    文章目录 一.类成员对象 1.类的对象 2.具体参考代码 二.动态对象与new.delete 1.C语言中为类的对象开辟动态空间 2.C++的new开辟动态空间:类型名 *p= new 类型名 3.请 ...

  2. C语言为四维数组申请动态内存空间的方法(二)

    尝试了用堆栈的方式为四维数组申请动态内存空间,并将申请内存的操作封装成了子函数,方便在主程序中使用.希望对大家有用.代码如下: #include <stdio.h> #include &l ...

  3. C语言为四维数组申请动态内存空间的方法(一)

    尝试了用结构体为四维数组申请动态内存空间,希望对大家有用.代码如下: #include <stdio.h> #include <stdlib.h>typedef struct ...

  4. 数据结构-malloc申请动态空间-链表的创建

    一:malloc申请动态空间注意以下事项: 1,malloc申请动态空间时必须声明类型; 2,使用malloc申请的空间在使用完成之后必须使用free释放; 3,malloc申请空间的类型必须和指向他 ...

  5. 动态内存申请(malloc, calloc, new)之分配虚拟内存空间和物理内存空间

    动态内存申请(malloc, calloc, new)之分配虚拟内存空间和物理内存空间 1. 动态内存申请的底层系统调用 动态内存申请函数根据申请的内存大小选择不同的系统调用,小于128K选择brk系 ...

  6. linux内核空间内存动态申请

    参考:<linux设备驱动开发详解>华清远见 ,--人民邮电出版社 用户空间内存动态申请 在用户空间动态申请内存的函数为 malloc(),这个函数在各种操作系统上的使用是一致的,mall ...

  7. Auto CAD:CAD软件之底边菜单栏(捕捉模式、极轴状态、对象捕捉、允许禁止动态UCS、动态输入、显示隐藏线宽、快速查看图形、选择循环命令、切换空间按钮)简介之详细攻略

    Auto CAD:CAD软件之底边菜单栏(捕捉模式.极轴状态.对象捕捉.允许禁止动态UCS.动态输入.显示隐藏线宽.快速查看图形.选择循环命令.切换空间按钮)简介之详细攻略 目录

  8. 【萌味】小夕说,不了解动态空间增长的程序喵都是假喵(中)

    亲爱的小屋客人,昨天小夕将小屋的讨论室重新装修啦!希望您会喜欢哦~除了口令[d],现在也可以通过主页下方的"喵了个咪"进入讨论室啦. ps:昨天小夕装修讨论室的时候发生了N次差点吐 ...

  9. Serv-U组建个人FTP服务器, ——完全图解教程:FTP架设、端口映射、动态域名申请...

    serv-u组建个人ftp服务器, --完全图解教程:ftp架设.端口映射.动态域名申请(一) 为了支持"共享小组事务"的胜利开设,我花了两天时间,参考网上众老鸟文章之长,由我这小 ...

最新文章

  1. Linux命令学习记录(六)
  2. 优秀的Java程序员必须了解GC的工作原理
  3. WordCount作业提交到FileInputFormat类中split切分算法和host选择算法过程源码分析
  4. 120万人同时在线考试,这么大的流量如何支撑
  5. SAP License:SAP 清帐介绍
  6. Eclipse批量替换
  7. html 表格_HTML -- 表格结构
  8. 删库跑路技巧 删库跑路命令
  9. 元数据是什么?如何管理元数据?
  10. [文献解读#4] 肿瘤抗原与肠道噬菌体之间的免疫交叉反应
  11. Android 获取当前设备SIM运营商
  12. jbuilder的set!方法重构接口
  13. 韩信点兵python程序_韩信点兵计算公式与代码
  14. Android CardView 不显示阴影
  15. 根据房间号提取直播源
  16. 汉语韵律短语切分方法初探
  17. 苹果手机计算机隐藏应用,超实用!15个苹果手机的隐藏功能,不看你手机就白买了!...
  18. bugku ctf 杂项 多彩
  19. 【STM32】 Keil程序开发环境
  20. 语音卡开发系列: LightweightCTI架构设计(作者:东成西就)

热门文章

  1. tensorflow对应的numpy版本_版本更新 | TensorFlow 2.4.0 候选版本发布
  2. element ui el-dialog 居中,并且内容多的时候内部可以滚动
  3. linux lamp实验报告,我的LAMP过程
  4. redis 高可用切换_Redis高可用架构演进
  5. jdbc与java数据库编程_JDBC与JAVA数据库编程
  6. shell取mysql数据_通过shell读取mysql数据——20120417
  7. linux系统怎么访问u盘文件系统,linux如何挂载U盘和文件系统
  8. 档案电子封装包Java类,email: Android电子邮件库(基于JavaMail封装)
  9. 计算机rank函数怎么用积分排名,excelrank函数积分排名
  10. Git 修改commit 相关操作