C++对象数组调用构造/析构函数的方法

您所在的位置:网站首页 类的对象数组怎么定义 C++对象数组调用构造/析构函数的方法

C++对象数组调用构造/析构函数的方法

2023-08-04 00:37| 来源: 网络整理| 查看: 265

C++的对象数组: 顾名思义,即是存储对象的数组。比如有一个对象student,实例化为对象数组有如下两种方式:

student stu[3]; //第一种方法,在栈空间中占用内存 student *stu = new student[3];//第二种方法,在堆空间中分配空间

对象数组调用构造函数:

class student //定义一个student类,只有个构造函数当示例用 { public: student(string name, int age) { stu_name = name; stu_age = age; } private: string stu_name; int stu_age; }; int main() { student stu1[3] = student("小明",12); //调用构造函数把三个对象的stu_name和stu_age都初始化为"小明"和12 student stu2[3] = {student("小明",12),student("小王",13),student("小李",14)};//把三个对象的stu_name和stu_age分别初始化为"小明",12和“小王”,13和"小李",14 student *stu3[3]; //定义一个指针数组对象 for(int i = 0; i < 3; i++) //循环依次实例化 { stu3[i] = new student("小明",12); //调用构造函数 } }

调用析构函数: 在对象stu1和stu2这两个对象数组中是不需要释放内存的,栈空间的内存系统自动释放,所以在析构函数中并不需要写什么;但是在堆空间中,由于使用了new操作符来申请内存,所以需要程序员手动释放。紧接着上面的代码,如下:

for(int i = 0; i < 3; i++) //由于创建的是指针数组,所以需要循环释放内存 { delete stu3[i]; }

注意: 如果构造函数里面没有传任何参数,那么使用new操作符可以进行如下不同于上面的实例化对象和释放内存操作

student *stu4 = new student[3]; //实例化对象数组 delete []stu4; //释放内存


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3