对象指针就是用于存放对象地址的变量。
声明对象指针的一般语法形式:
类名 *对象指针名
1、用指针访问单个对象成员
在一般情况下,用点运算符 “ . ” 来访问对象成员,当用指向对象的指针来访问对象成员时,就要用 “ -> ” 操作符。
例 1: 对象指针的使用
#include<iostream>
using namespace std;
class exe{
public:
void set_a(int a){ //定义成员函数set_a,给数据成员赋值
x=a;
}
void show_a(){ //定义成员函数show_a,输出数据成员的值
cout<<x<<endl;
}
private:
int x;
};
int main(){
exe ob;
exe *p;
ob.set_a(2);
ob.show_a();
p=&ob;
p->show_a();
(*p).show_a();
return 0;
}
2、用对象指针访问对象数组
#include<iostream>
using namespace std;
class exe{
public:
void set_a(int a){ //定义成员函数set_a,给数据成员赋值
x=a;
}
void show_a(){ //定义成员函数show_a,输出数据成员的值
cout<<x<<endl;
}
private:
int x;
};
int main(){
exe ob[2]; //定义类exe的对象数组ob[2]
exe *p;
ob[0].set_a(10);
ob[1].set_a(20);
p=ob; //把对象数组的地址赋给对象指针变量p
p->show_a();
p++;
p->show_a();
return 0;
}
其中的“ p=ob ” 表示把对象数组的第一个元素的地址(即数组的地址)赋给对象指针变量p。对象指针p加1 时,指向下一个数组元素。