对象数组与对象指针

举报
努力变强的小C 发表于 2022/09/29 18:09:30 2022/09/29
【摘要】 对象数组与对象指针

文章目录

什么是对象数组

定义的格式

对个参数的构造函数给对象数组赋值

什么是对象指针?

 对象指针的作用



什么是对象数组

简单的来说,对象数组就是指一个数组中的一个数,全部都是一些类的对象所组成的一个数组,再通俗来讲就是一个类,有很多很多对象,我们把这一系列的对象只用一个数组来存放,对象数组的元素就是对象,不仅具有数据成员,而且还有成员函数

定义的格式

定义一个对象的通用格式

假如我有一个类

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

什么是对象指针?

 在每一个对象初始化后都会在内存中占有一定的空间,所以我们又可以通过对象名访问对象,也可以通过该对象的地址来访问对象,对象指针就是用来存放该对象地址的一个变量,声明对象只跟语法形式如下

类名 * 对象指针名

 对象指针的作用

可以用对象指针访问单个对象成员

可以用对象指针访问对象数组。对象只能不仅能够访问单个对象,同时也能访问对象数组

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。