威县做网站哪家便宜,东莞网站建设排名,大型网站技术架构:核心原理与案例分析,软件开发文档怎么编写对象数组是什么
数组对象就是大批量实例化对象的一种方法#xff0c;例如#xff1a;Student stu 实例化对象#xff0c;如果有好几百个对象应该怎么办#xff1f;这时候就用到了对象数组#xff0c;顾名思义#xff0c;就是吧所有要实例化的对象都放到一个组里面#…对象数组是什么
数组对象就是大批量实例化对象的一种方法例如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);
}完整代码
#includeiostream
#includestdlib.h
#includeCoordinate.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 p1, 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(i0;i3;i){cout横坐标coor[i].m_iXendl;cout纵坐标coor[i].m_iYendl;}// 遍历第一个数组for(j0;j3;j){coutp_x p-m_iXendl;coutp_y p-m_iYendl;p--; // 因为通过两次p,此时p的位置已经是在对象数组的最后一个所以要用p--,反方向遍历}// 释放内存// 因为上面p-- 执行了3次所以此时p的位置并不在对象数组的第一位而在其前一位// 所以要将p往前移动一位再去释放内存。p; delete []p;p NULLsystem(pause);return 0;
}