对象数组与对象指针

简介: 对象数组与对象指针

文章目录

什么是对象数组

定义的格式

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

什么是对象指针?

对象指针的作用


什么是对象数组

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

定义的格式

定义一个对象的通用格式

假如我有一个类

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

什么是对象指针?

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

类名 * 对象指针名

对象指针的作用

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

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

相关文章
|
3月前
使用指针访问数组元素
【10月更文挑战第30天】使用指针访问数组元素。
53 3
|
3月前
|
存储 程序员 编译器
C 语言数组与指针的深度剖析与应用
在C语言中,数组与指针是核心概念,二者既独立又紧密相连。数组是在连续内存中存储相同类型数据的结构,而指针则存储内存地址,二者结合可在数据处理、函数传参等方面发挥巨大作用。掌握它们的特性和关系,对于优化程序性能、灵活处理数据结构至关重要。
|
3月前
|
存储 C语言 计算机视觉
在C语言中指针数组和数组指针在动态内存分配中的应用
在C语言中,指针数组和数组指针均可用于动态内存分配。指针数组是数组的每个元素都是指针,可用于指向多个动态分配的内存块;数组指针则指向一个数组,可动态分配和管理大型数据结构。两者结合使用,灵活高效地管理内存。
|
3月前
|
容器
在使用指针数组进行动态内存分配时,如何避免内存泄漏
在使用指针数组进行动态内存分配时,避免内存泄漏的关键在于确保每个分配的内存块都能被正确释放。具体做法包括:1. 分配后立即检查是否成功;2. 使用完成后及时释放内存;3. 避免重复释放同一内存地址;4. 尽量使用智能指针或容器类管理内存。
|
3月前
|
存储 NoSQL 编译器
C 语言中指针数组与数组指针的辨析与应用
在C语言中,指针数组和数组指针是两个容易混淆但用途不同的概念。指针数组是一个数组,其元素是指针类型;而数组指针是指向数组的指针。两者在声明、使用及内存布局上各有特点,正确理解它们有助于更高效地编程。
|
3月前
|
存储 人工智能 算法
数据结构实验之C 语言的函数数组指针结构体知识
本实验旨在复习C语言中的函数、数组、指针、结构体与共用体等核心概念,并通过具体编程任务加深理解。任务包括输出100以内所有素数、逆序排列一维数组、查找二维数组中的鞍点、利用指针输出二维数组元素,以及使用结构体和共用体处理教师与学生信息。每个任务不仅强化了基本语法的应用,还涉及到了算法逻辑的设计与优化。实验结果显示,学生能够有效掌握并运用这些知识完成指定任务。
81 4
|
3月前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
248 4
|
3月前
使用指针访问数组元素
【10月更文挑战第31天】使用指针访问数组元素。
63 2
|
3月前
|
算法 索引
单链表题+数组题(快慢指针和左右指针)
单链表题+数组题(快慢指针和左右指针)
50 1
|
4月前
|
存储
如何使用指针数组来实现动态二维数组
指针数组可以用来实现动态二维数组。首先,定义一个指向指针的指针变量,并使用 `malloc` 为它分配内存,然后为每个子数组分配内存。通过这种方式,可以灵活地创建和管理不同大小的二维数组。

热门文章

最新文章