先给出一个类,下面的例子都以这个类为基础进行说明
class Time
{
public:
int hour;
int minute'
int sec;
void get_time();
};
void Time::get_time()
{cout<<hour<<":"<<minute<<":"<<sec<<":"<<endl;}
指向对象的指针
定义格式
类名 *对象指针名;
Time t1;
Time *pt;
pt=&t1;
可以在定义指针变量的同时指定其指向,合起来写成这样:
Time t1;
Time *pt=&t1;
pt是指向对象的指针变量,它指向对象t1。
通过pt可以访问对象及对象的成员。
*pt; //对象t1;
(*pt).hour; //pt->hour; 等价
(*pt).get_time(); //pt->get_time(); 等价
指向对象成员的指针
定义格式
数据类型名 *指针变量名;
int *p1;
p1=&t1.hour;
cout<<*p1;
可以在定义指针变量的同时指定其指向,合起来写成这样:
Time t1;
Time *p1=&t1.hour;
指向对象成员函数的指针
定义格式
数据类型名 (类名::*指针变量名)(参数表列);
void (Time::*p2)();
指向一个公有成员函数的格式:
指针变量名= 类名::&成员函数名;
p2=&Time::get_time;
可以在定义指针变量的同时指定其指向,合起来写成这样:
void (Time::*p2)()=&Time::get_time;