归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言📝
芳华没有草稿纸,我们永久不克不及输!
一起加油!
数组是多个同类型变量组成的集合。而对象是用户自定义数据类型声明的变量,因此可以定义对象数组,成批处理同类型对象,简化程序设计过程。
对象数组的元素是对象。这些对象不仅具有数据成员,而且还有函数成员。因此,与基本数据类型数组相比,对象数组有以下特殊之处。
一维对象数组的声明形式如下:
类名 数组名[常量表达式];
与一般数组的用法类似,在使用对象数组时也只能引用单个数组元素。每个数组元素都是个对象,通过这个对象可以访问它的公有成员。访问形式如下:
数组名 [下标表达式].成员名;
对象数组中存放的都是对象,前面已经介绍了定义对象时系统会自动调用构造函数初始化对象。因此,在定义对象数组时,系统也会多次自动调用构造函数完成对数组中每一个对象元素的初始化。例如:
class Point{private:double x,y;public:Point(double px=0.0,double py=0.0):x(px),y(py){ }……
};
……
Point P[2]={Point (1,2),Point (3,4)};
声明坐标类 Point 后,可以通过类 Point 定义对象数组 p[2]。在程序执行时,系统会先后两次调用类 Point 中的构造函数分别初始化对象 pr]和 p[1]。为了方便起见,有时在定义时不给定初始化参数,如下所示:
Point p[2];
此时,若类 Point 中定义了带参的构造函数,则还需要再定义一个默认构造函数,或者给出带参的构造函数形参的默认值(如上示例代码所示)。当定义对象(数组时,如果给出参数就调用带参的构造函数;如果没有给出参数则调用默认的构造函数,或者带参的构造函数按形参的默认值进行工作。
因此,在定义某个类时,如果考虑后期需要建立类的对象数组,那么构造函数的定义就要充分考虑到对象数组元素初始化的需要。数组各元素给定了初始化的值,要定义带参的构造函数以供调用:数组各元素没有给定初始化的值,或者初始化的值相同,则类中要定义带默认形参值的构造函数以供调用。
同样地,当数组生存期结束时,系统会自动调用析构函数来完成清理工作。
共勉:
以上就是我对类和对象——(5)定义对象数组的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对类和对象的理解,请持续关注我哦!!!