hi,在c++ 中,如何定义个指针,使之指向类中对象的成员函数,如下程序

#include<iostream>usingnamespacestd;classTime{public:voidget_time(){cout<<"hello";}};... #include<iostream>
using namespace std;
class Time
{
public:
void get_time()
{ cout<<"hello"; }
};
int main()
{
Time t1;
如何定义指向t1.get_time()的指针;
注意不是指向类公共成员函数的指针void (Time::*p)() =&Time::get_time;

return 0;
}
展开
 我来答
百度网友32cdd9945
2013-03-13 · TA获得超过1374个赞
知道大有可为答主
回答量:2429
采纳率:100%
帮助的人:1927万
展开全部
函数是 属于代码段,所有对象在内存里面共享一份代码的。
在内存里面的地址就是 你说的&Time::get_time;。 不过你拿到这个东西毫无意义。通常来说,代码的位置都是只读的内存,保存的是汇编的机器码,你说你要这个东西有啥用呢,只是给cpu执行的指令。

数据则不一样,每个对象在内存里面都有自己的一份数据。数据是放到数据段的。
咩个程序加载后,内存会分为数据块和 代码块等多个 内存区域。不同的内容存放于不同的区域里面。
---------------------------------------------------
(1)可以定义指向类数据成员的指针吗?
(2)为什么可以定义指针指向实例化后 类对象的数据成员;

这个是数据,是可以的。不过对于复杂对象来说一般也不推荐这么做。一般用于简单struct的,没有继承的时候通过直接操纵指针有时候会方便一些。
FanyongYin
2013-03-13 · TA获得超过1054个赞
知道小有建树答主
回答量:1298
采纳率:100%
帮助的人:1009万
展开全部
你认为类实例化之后也具有自己的函数,而且每个实例的不同?
追问
你好,初学c++,只是看到书上没有介绍这个指针;
还有个问题:(1)可以定义指向类数据成员的指针吗?(2)为什么可以定义指针指向实例化后 类对象的数据成员;
追答
查询看看C++中的class的存储模型吧,各种成员类型都分析一下估计就好多了,有些问题可能就不再是问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户

2013-03-13
展开全部
"指向类公共成员函数的指针void (Time::*p)() =&Time::get_time;"
这个类型的指针可以指向t1.get_time()的,因为它们类型相同,作用域相同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-13
展开全部
void (*p)();

p=t1.get_time();
不行么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式