`
huobengluantiao8
  • 浏览: 1033274 次
文章分类
社区版块
存档分类
最新评论

C++ 对象指针(函数指针)

 
阅读更多

C++ 对象指针(函数指针)

1、指向对象的指针:

对象的起始地址就是对象的指针,可以定义一个指针变量用来存放对象的指针;

Time *pt; //定义pt为指向Time类对象的赋值指针变量

Time t1; //定义t1Time类的对象

pt = &t1; //t1起始地址赋给pt

*pt 此时pt指向的对象已经是t1了;

(*pt).hour 指向对象中的hour成员

pt->hour;

2、指向对象成员的指针:

指向对象数据成员:

一般形式------数据类型名 *指针变量名;

同上面的例子:他如果time是公用数据类型,就可以通过把time指定为指针

在类外通过指针对象数据成员来访问hour

pl = &t1.hour;

cout<<*pl;

指向对象成员函数的指针

需要注意的是,定义执行对象成员函数的指针变量的方法,和定义普通函数的指针变量方法是不同的!!!

普通函数指针变量定义

数据类型名(*指针变量名)(参数列表);

void(*p)(); //P是指向void型函数的指针变量

这样定义的函数指针变量可以用来指向一个函数,并且调用函数;

p= fun; //fun函数的入口地址赋值给指针变量p

(*p)(); //调用fun函数

对象成员函数的使用就没有这么简单了,

首先来看一下成员函数和普通函数的区别;

成员函数是类的一个成员,指针变量的类型必须与赋值号右侧的函数类型相匹配

1、函数参数的类型韩参数个数;

2、函数返回值的类型

3、所属的类

综上所述定义对象成员函数的具体方法是

void TIme:: *p2(); //定义p2为指向time类中公有成员函数的指针变量

(Time:: *p2) 两侧的括号不能省略,因为()的优先级高于*

定义成员函数的指针变量的一般形式为;

数据类型名(类名:: *指针变量名)(参数列表);

可以让他指向一个公有成员函数,把成员函数的入口给他就可以了

比如:

p2 = &Time:: get_time;

使指针变量指向一个公有成员函数的一般形式为

指针变量名 = &类名::成员函数名;

其实总结起来就是,在每个成员函数的前面加上类就可以啦!!!也就这点不同!!


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics