C++之对象指针

本文详细介绍了面向对象程序设计中对象指针的概念,包括指向对象的指针和指向对象成员的指针。首先解释了如何使用指针来访问对象的数据成员和成员函数,然后深入探讨了如何定义指向对象成员的指针并进行正确使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对象指针
1,指向对象的指针
Time * pt;
Time t1;
pt = &t1;
一个对象存储空间的起始地址就是对象的指针,可以定义一个指针变量,用来存放对象的地址,这就是指向对象的指针变量。
访问对象成员
pt -> hour;
(*pt).getTime();


2,指向对象成员的指针
(1),指向对象数据成员的指针
int *p1;
p1 = &t1.hour;
cout<<*p1<<endl;


(2)指向对象成员函数的指针
先复习一下指向普通函数的指针变量的定义方法
void (*p) ();//p是指向void型函数的指针变量
可以使p指向一个函数,并通过指针变量调用函数:
p= fun;  //将fun函数的指针入口地址付给了指针变量p,p就指向了函数fun;
(*p)();    //调用fun函数
但是不能类似的指向成员函数,如以下是错误的
p = t1.getTime();
因为编译系统要求指针变量的类型必须与赋值号右侧额类型相匹配,但指针变量p与类无关,而getTime函数却属于Time类。
所以应采用下面的方式:
void(Time::*p2)();//定义p2为指向Time类中公用成员函数的指针变量
注意(Time*p2)两侧的括号不能去掉,因为()的优先级高于*,没有括号,就变成了
void(Time::*(p2());  //这是返回值为void类型指针的函数。
定义指向公用函数的指针变量的一般形式为
数据类型名(类名::指针变量名)(参数列表);
可以让他指向一个公用成员函数,
p2 = &Time::getTime;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值