对象数组、对象指针和this指针
在 C++ 程序设计中,对象数组和对象指针是两个重要的概念,理解它们的使用和特点对于编写高效、可维护的代码非常重要。本文将详细介绍对象数组、对象指针和this指针的概念、特点和使用方法。
对象数组
对象数组是指一个类的多个对象组成的数组,每个对象都可以独立地存取和操作。对象数组可以用类定义,例如:
```cpp
class exam {
int x;
public:
void set_x(int n) { x = n; }
int get_x() { return x; }
};
```
定义了一个名为 `exam` 的类,该类有一个私有成员变量 `x` 和两个公共成员函数 `set_x` 和 `get_x`。然后,可以定义一个对象数组:
```cpp
exam ob[4];
```
这将创建一个名为 `ob` 的对象数组,包含 4 个 `exam` 对象。每个对象都可以独立地存取和操作。
对象指针
对象指针是指向类对象的指针,用于引用单个对象或对象数组。对象指针可以用来引用单个对象,例如:
```cpp
exe ob;
exe *p;
ob.set_a(2);
ob.show_a();
p = &ob;
p->show_a();
```
这将创建一个名为 `ob` 的对象,并将其地址赋值给指针 `p`,然后使用指针 `p` 来调用对象的成员函数。
也可以用对象指针来引用对象数组,例如:
```cpp
exe ob[2];
exe *p;
ob[0].set_a(10);
ob[1].set_a(20);
p = ob;
p->show_a();
p++;
p->show_a();
```
这将创建一个名为 `ob` 的对象数组,并将其地址赋值给指针 `p`,然后使用指针 `p` 来调用对象数组的成员函数。
this 指针
this 指针是 C++ 中的一个隐含指针,用于引用当前对象。每当成员函数被调用时,C++ 都会自动产生一个 this 指针,指向当前对象。例如:
```cpp
class exth {
int i;
public:
void load(int val) {
i = val;
}
void show() {
cout << i << endl;
}
};
void main() {
exth ob;
ob.load(10);
ob.show();
}
```
在上面的例子中,`load` 函数和 `show` 函数都使用了 this 指针来引用当前对象 `ob`。这样,便可以在成员函数中访问和操作当前对象的成员变量。
对象数组、对象指针和this指针都是 C++ 程序设计中的重要概念,理解它们的使用和特点对于编写高效、可维护的代码非常重要。