C++对象数组

对象数组是什么

数组对象就是大批量实例化对象的一种方法,例如:Student stu 实例化对象,如果有好几百个对象应该怎么办?这时候就用到了对象数组,顾名思义,就是吧所有要实例化的对象都放到一个组里面,然后直接实例化这个组,就像这样:Student stu[100] 这样一次性实例化100个对象。stu[1] 这就是对象数组里面的一个对象,stu[1].m_iX = 10 这就是给对象的属性进行定义。

访问数组中成员的方式

在这里插入图片描述
示例:

int main()
{Student stu[3]; // 通过栈的方式实例化对象数组stu[1].m_iX = 10; // 给对象数组里面的第二个对象赋值Student *p = new Student[3]; // 通过堆的方式实例化对象数组p[0].m_iY = 20;  // 给数组对象里面的一个对象p[0]添加属性 m_iYp->m_iY = 20;delete []p;p = NULL;system("pause");
}

完整代码:

#include<iostream>
#include<stdlib.h>
#include"Coordinate.h"
using namespace std;class Coordinate
{
public:Coordinate();~Coordinate();
public:int m_iX; // 横坐标int m_iY; // 纵坐标
};Coordinate::Coordinate()
{cout<<"构造函数"<<endl;
}
Coordinate::~Coordinate()
{cout<<"析构函数"<<endl;
}int main(void)
{// 从栈上实例化对象数组Coordinate coor[3]; coor[0].m_iX = 3;    // 位对象数组中的第一个对象的属性初始化coor[0].m_iY = 5;// 从堆中实例化对象数组Coordinate *p = new Coordinate[3];p->m_iX = 7;   // 通过指针的方式访问对象数组中的第一个对象p[0].m_iY = 9;  // 通过索引的方式访问对象数组中的第一个对象p++; //p = p+1,  p += 1 指针位置往前移一个位置p->m_iX = 11; // 此时访问的是第二个对象p[0].m_iY = 13;  // 因为p往前移动了一个元素,所以现在的p[0]是第二个元素p[1].m_iX = 15;  // 因为p往前移动了一个元素,所以现在的p[1]是第三个元素p++;  // p指针再往前移动一个位置,到达第二个位置p->m_iY = 17;// 遍历第一个数组int i,j;for(i=0;i<3;i++){cout<<"横坐标:"<<coor[i].m_iX<<endl;cout<<"纵坐标:"<<coor[i].m_iY<<endl;}// 遍历第一个数组for(j=0;j<3;j++){cout<<"p_x "<<p->m_iX<<endl;cout<<"p_y "<<p->m_iY<<endl;p--; // 因为通过两次p++,此时p的位置已经是在对象数组的最后一个,所以要用p--,反方向遍历}// 释放内存// 因为上面p-- 执行了3次所以此时p的位置并不在对象数组的第一位,而在其前一位,// 所以要将p往前移动一位,再去释放内存。p++;  delete []p;p = NULLsystem("pause");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

镜像安装linux选择内核版本,在CentOS和Ubuntu中安装Linux Kernel 4.13.10

Linus Torvalds 在 10 月 17 日星期五正式发布了稳定版 Linux Kernel 4.13.10&#xff0c;这个最新版本发布了新功能&#xff0c;进行了诸多修复和问题改进。下面将向大家介绍在 CentOS 和 Ubuntu 中手动安装、更新 Linux Kernel 4.13.10 的方法&#xff0c;当然&#xff0c;这…

C++成员对象和封闭类

有其他类的对象作为 成员对象的类叫封闭类。 任何生成封闭类对象的语句&#xff0c;都要让编译器明白&#xff0c;对象中的成员对象&#xff0c;是如何初始化的。 具体做法是通过封闭类的构造函数的初始化列表。 封闭类对象生成时&#xff0c;先执行所有对象成员的构造函数&a…

linux设备进入睡眠所需时间,android linux 休眠 深度睡眠 查看 方法 调试【转】

在Android移动设备中&#xff0c;有时按下Power键(未接电源&#xff0c;USB)时&#xff0c;因其它apk程序获取了wake_up锁未释放或程序BUG导致未释放&#xff0c;造成未能进入深度睡眠&#xff0c;从而加大了耗电量&#xff0c;减少了待机时间&#xff0c;参考如下图&#xff0…

kali 邮箱攻击_kali下邮件发送工具swaks入坑

Swaks是一个功能强大&#xff0c;灵活&#xff0c;可编写脚本&#xff0c;面向事务的SMTP测试工具&#xff0c;目前Swaks托管在私有svn存储库中。官方项目页面是牛刀小试kali下默认自带&#xff0c;无需安装。01 测试邮箱的连通性swaks --to xxxxxxqq.com返回250ok&#xff0c;…

C++引用浅析

C 中&#xff0c;有一种比指针更加便捷的传递聚合类型数据的方式&#xff0c;那就是引用&#xff08;Reference&#xff09;。 在 C/C 中&#xff0c;我们将 char、int、float 等由语言本身支持的类型称为基本类型&#xff0c;将数组、结构体、类&#xff08;对象&#xff09;等…

linux 进程 控制终端,linux系统编程之进程(五):终端、作业控制与守护进程

#include#define ERR_EXIT(m)do {perror(m);exit(EXIT_FAILURE);} while(0)int setup_daemon(int, int);/* 守护进程一直在后台运行且无控制终端 */int main(int argc, char *argv[]){// daemon(0, 0)setup_daemon(0, 0);printf("test ..."); // 无输出for(;;) ;ret…

arduino 温度调节器_Arduino用温湿度传感器控制继电器,为什么点了串口助手才能运行,拔掉usb线,直接外界9V电源却用不了...

用温湿度传感器控制继电器&#xff0c;为什么点了串口助手才能运行&#xff0c;拔掉usb线&#xff0c;直接外界9V电源却用不了&#xff0c;以下是程序&#xff0c;目的是在湿度达到40%的时候继电器吸合&#xff0c;45%后&#xff0c;继电器断开&#xff0c;求各位大神指教...用…

C++中指针与引用的区别

指针的本质 指针p也是对象&#xff0c;只不过p存储的数据类型是它所指的对象的地址。可以通过解引用操作符“”来访问对象的值&#xff0c;即p。 对象有常量&#xff08;const&#xff09;和非常量之分&#xff0c;如果指针本身是常量&#xff0c;即指针常量&#xff0c;指这…

python支持按指定字符串分割成数组_python – 如何切割numpy数组字符串的每个元素?...

这是一个矢量化的方法 –def slicer_vectorized(a,start,end):b a.view(S1).reshape(len(a),-1)[:,start:end]return np.fromstring(b.tostring(),dtypeSstr(end-start))样品运行 –In [68]: a np.array([hello, how, are, you])In [69]: slicer_vectorized(a,1,3)Out[69]:ar…

数据库的概念

数据存储方式 计算机数据&#xff08;Data&#xff09;的存储一般以硬盘为数据存储空间资源&#xff0c;从而保证计算机内的数据能够持续保存。对于数据的处理&#xff0c;一般会采用数据库相关的技术进行处理&#xff0c;从而保证数据处理的高效性。 采用数据库的管理模式不…

高中关于人工智能方面的课题_2019山东人工智能教育专项课题指南选题

人工智能教育专项课题&#xff0c;2019年度山东省教育规划课题已经启动&#xff0c;申报者有这方面的申报意向&#xff0c;就需要知道选题范围&#xff0c;以下是2019山东人工智能教育专项课题指南选题。小学人工智能教育课程体系、教学策略及教学评价的研究初中人工智能教育课…

linux qt5.9交叉编译,QT5.9移植

&#xff11;&#xff0e;下载&#xff31;&#xff54;源码Qt源码下载地址&#xff1a;Index of /archive/qt 其他源码和其他安装包都是有的。2&#xff0e;解压源码$ mkdir qt5.9$cd qt5.9将下载文件拷贝到当前目录下面。解压$ xz -d qt-everywhere-opensource-src-5.9.7.t…

python雪花算法生成id_理解分布式id生成算法SnowFlake

分布式id生成算法的有很多种&#xff0c;Twitter的SnowFlake就是其中经典的一种。概述SnowFlake算法生成id的结果是一个64bit大小的整数&#xff0c;它的结构如下图&#xff1a;1位&#xff0c;不用。二进制中最高位为1的都是负数&#xff0c;但是我们生成的id一般都使用整数&a…

linux wps 公式编辑器,WPS 2012数学公式编辑器的使用方法(详细图解)

做数学或物理课件时很多公式是件比较头痛的事。时常陷入无穷的拼接法中&#xff0c;用一个一个文本框组合成复杂的公式。其实WPS 2012e为我们提供了一个功能强大的公式编辑器Equation Editor&#xff0c;可以帮助我们解决这些问题。1、插入公式将光标放置于欲插入公式的位置&am…

linux utmp结构体,Linux C编程如何使用联机帮助来解决编程问题?

1.背景多次学习C语言一直无法踏入C语言的大门&#xff0c;每次都是在学习C语言中的那些系统调用库函数等望而却只&#xff0c;linux下的系统调用需要我们去记忆一些没有规律的结构体和一些大写的宏定义并且还有一个函数多种形式的例如print fprintf sprintf等等&#xff0c;看起…

ios 画线平滑_iOS 画贝塞尔曲线 连续曲线 平滑曲线 曲线图表

利用贝塞尔曲线画一段连续曲线bezierDemo2.pngbezierDemo1.pngimage.png如果我们根据几个点画一条连续的曲线, 我们使用的方法是- (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2;这个方法是由一个结束点…

python中怎么判断字母大小写_python判断字符串是字母 数字 大小写(转载)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼今天遇到的字符串处理的问题&#xff0c;记录一下方便使用str1 input(请输入一个字符&#xff1a;)#初始化字符、数字、空格、特殊字符的计数lowercase 0uppercase 0number 0space 0other 0for strs in str1:#如果在字符串中…

深度linux安装好上不了网,Deepin Linux 无法上网

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼我又用回2008了LINUX图形界面还是太慢 我的感觉太敏锐 虽然LINUX的图形界面的延迟 从你鼠标发出信号 到XSERVER的视觉呈现也就几百毫秒 但还是感觉比WINDOWS NT的效率差了几百倍 .用的越久感觉越明显.WINDOWS图形界面下的操控不管你…

php 伪静态 获取当前页面路径_织梦移动适配PHP获取当前页面URL地址方法

在做织梦网站开发时&#xff0c;会遇到获取当前URL并做PHP判断。比如地区站群PC端的移动适配功能&#xff0c;下面提供PHP通用移动端适配方法。PC首页路径&#xff1a;www.xx.com移动端首页路径&#xff1a;m.xx.com地区PC首页路径&#xff1a;beijing.xx.com地区移动端首页路径…

linux客户端 存活检测,Linux下客户端检测服务器的 heartbeat

客户端代码&#xff0c;和一般的客户端不一样#include#include#include#include#include#include#include#include#include#include#include #include #define MAXDATASIZE 100int main(){int sockfd,nbytes,serv_port;char buf_serv_ip[16],buf[260];struct sockaddr_in serv_…