C++中对象的动态建立与释放讲解以及对象数组与指针数组的区别
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"C++中对象的动态建立与释放讲解以及对象数组与指针数组的区别",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++中对象的动态建立与释放讲
千家信息网最后更新 2026年11月01日C++中对象的动态建立与释放讲解以及对象数组与指针数组的区别
本篇内容主要讲解"C++中对象的动态建立与释放讲解以及对象数组与指针数组的区别",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++中对象的动态建立与释放讲解以及对象数组与指针数组的区别"吧!
目录
概述
对象的动态的建立和释放
案例
对象数组 vs 指针数组
对象数组
指针数组
概述
通过对象的动态建立和释放, 我们可以提高内存空间的利用率.
对象的动态的建立和释放
new 运算符: 动态地分配内存
delete 运算符: 释放内存
当我们用new运算符动态地分配内存后, 将返回一个指向新对象的指针的值. 我们可以通过这个地址来访问对象. 例如:
int main() { Time *pt1 = new Time(8, 8, 8); pt1 -> show_time(); delete pt1; // 释放对象 return 0;}输出结果:
8:8:8
当我们不再需要由 new 建立的对象时, 用 delete 运算符释放.
案例
Box 类:
#ifndef PROJECT1_BOX_H#define PROJECT1_BOX_Hclass Box {public: // 成员对象 double length; double width; double height; // 成员函数 Box(); // 无参构造 Box(double h, double w, double l); // 有参有参构造 ~Box(); // 析构函数 double volume() const; // 常成员函数};#endif //PROJECT1_BOX_HBox.cpp:
#include#include "Box.h"using namespace std;Box::Box() : height(-1), width(-1), length(-1) {}Box::Box(double h, double w, double l) : height(h), width(w), length(l) { cout << "========调用构造函数========\n";}double Box::volume() const{ return (height * width * length);}Box::~Box() { cout << "========调用析构函数========\n";}
main:
#include "Box.h"#includeusing namespace std;int main() { Box *pt = new Box(16, 12, 10); // 创建指针pt指向Box对象 cout << "长:" << pt->length << "\t"; cout << "宽:" << pt->width << "\t"; cout << "高:" << pt->height << endl; cout << "体积:" << pt->volume() << endl; delete pt; // 释放空间 return 0;}
输出结果:
========调用构造函数========
长:10 宽:12 高:16
体积:1920
========调用析构函数========
对象数组 vs 指针数组
对象数组
固定大小的数组:
const int N = 100;Time t[N];
动态数组:
const int n = 3; // 定义数组个数Time *pt = new Time[n]; // 定义指针指向数组delete []pt; // 释放空间
指针数组
建立占用空间小的指针数组可以帮助我们灵活处理常用空间大的对象集合. (拿时间换空间)
举个栗子:
int main() { const int n = 3; Time *t[n] = {nullptr}; if (t[0] == nullptr){ t[0] = new Time(8, 8, 8); } if (t[1] == nullptr){ t[1] = new Time(6, 6, 6); } t[0] -> show_time(); t[1] -> show_time(); return 0;}到此,相信大家对"C++中对象的动态建立与释放讲解以及对象数组与指针数组的区别"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
对象
数组
指针
动态
函数
空间
内存
运算符
运算
C++
成员
指向
体积
内容
案例
结果
分配
学习
输出
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中智农互联网科技
互联网的科技创新
互联网科技小贷
唐信互联网科技 大连
兼蜜互联网科技
互联网科技素材视频竖屏
深圳卡尔迅互联网科技有限公司怎么样
农村开互联网科技讲堂
中化能源互联网科技招聘
互联网5g黑科技有哪些
玉溪互联网科技怎么选
山东子淼互联网科技有限公司
沐思想互联网科技有限公司
互联网企业科技类企业如何做账
上海乐五互联网科技有限公司
互联网时代科技型公司的机会
中国科技和美国互联网
互联网领先科技活动
恒生科技指数 中概互联网
互联网科技创业有什么好项目
互联网和科技技术
科技和互联网公司
互联网科技博客
剑昆互联网络科技有限公司临桂
移动互联网科技股
厦门比较好的科技互联网公司
互联网科技公司营业执照怎么办理
众安科技工业互联网合作
同城互联网络科技
科技美学互联网 艺术