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

2025-04-28 05:30:06
推荐回答(4个)
回答1:

函数是 属于代码段,所有对象在内存里面共享一份代码的。
在内存里面的地址就是 你说的&Time::get_time;。 不过你拿到这个东西毫无意义。通常来说,代码的位置都是只读的内存,保存的是汇编的机器码,你说你要这个东西有啥用呢,只是给cpu执行的指令。

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

这个是数据,是可以的。不过对于复杂对象来说一般也不推荐这么做。一般用于简单struct的,没有继承的时候通过直接操纵指针有时候会方便一些。

回答2:

你认为类实例化之后也具有自己的函数,而且每个实例的不同?

回答3:

"指向类公共成员函数的指针void (Time::*p)() =&Time::get_time;"
这个类型的指针可以指向t1.get_time()的,因为它们类型相同,作用域相同。

回答4:

void (*p)();

p=t1.get_time();
不行么