文章目录
什么是对象数组
简单的来说,对象数组就是指一个数组中的一个数,全部都是一些类的对象所组成的一个数组,再通俗来讲就是一个类,有很多很多对象,我们把这一系列的对象只用一个数组来存放,对象数组的元素就是对象,不仅具有数据成员,而且还有成员函数
定义的格式
定义一个对象的通用格式
假如我有一个类
class A { public: A(int a, int s); void show_score(); private: int age, score; };
对个参数的构造函数给对象数组赋值
当构造函数有多个参数的时候,在定义对象数组的时候,我们应该按以下方式进行初始化,必须要花括号后将构造函数和指定实参分别写出就可以,下面看一个例子就可以用以下方法定义对象数组
A obj[3] = { //定义对象数组 A(18, 100), A(19, 99), A(20, 98) };
正是因为这个对象数组有三个对象数组的元素,所以在建立他的时候要三次调用构造函数,对每一个对象数组元素都要进行初始化,所以每一个元素的时差都要用括号分别包起来,对应构造函数的那一组形参,否则如果不这样做的话会产生混淆
下面用多个参数的构造函数给对象数组赋值
#include <iostream> #include <string> using namespace std; class A { public: A(int a, int s); void show_score(); private: int age, score; }; A::A(int a, int s) { age = a; score = s; } void A::show_score() { cout << "this 指针值:" << this << "期末成绩:" << this->score << endl; } int main() { A obj[3] = { //定义对象数组 A(18, 100), A(19, 99), A(20, 98) }; for (int i = 0; i < 3; i++) obj[i].show_score(); return 0; }
输出结果:
this 指针值:00000069F22FF8F8期末成绩:100
this 指针值:00000069F22FF900期末成绩:99
this 指针值:00000069F22FF908期末成绩:98
什么是对象指针?
在每一个对象初始化后都会在内存中占有一定的空间,所以我们又可以通过对象名访问对象,也可以通过该对象的地址来访问对象,对象指针就是用来存放该对象地址的一个变量,声明对象只跟语法形式如下
类名 * 对象指针名
对象指针的作用
可以用对象指针访问单个对象成员
可以用对象指针访问对象数组。对象只能不仅能够访问单个对象,同时也能访问对象数组