C++中对象的动态建立与释放讲解以及对象数组与指针数组的区别
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容主要讲解"C++中对象的动态建立与释放讲解以及对象数组与指针数组的区别",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++中对象的动态建立与释放讲
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
多人服务器怎么进服
南京智能软件开发系统
软件开发合同增值税是多少
网络技术副总经理岗位职责
服务器管理海量内存
服务器带宽怎么看
网络安全宣传辟谣
我国网络安全的战略任务
安全狗服务器怎么安装
C 连接数据库取数据
软件开发会不会饱和
数据库技术学什么内容
bch网络安全吗
大专网络技术基础书籍
ip网络技术命令range
服务器管理器重新定位了
安装sftp服务器
加载服务器列表失败
苏州金融软件开发
数据库加密技术的研究现状
多人服务器怎么进服
sql跨表查询数据库
服务器CT数据下载到本地
cec下属服务器
斗罗服务器最新
nba2k19ps4服务器关闭
魔兽世界暗影国度选择哪个服务器
数据库系统视频 下载
迁移服务器后出现网络延迟
网络安全调查显示