函数是 属于代码段,所有对象在内存里面共享一份代码的。
在内存里面的地址就是 你说的&Time::get_time;。 不过你拿到这个东西毫无意义。通常来说,代码的位置都是只读的内存,保存的是汇编的机器码,你说你要这个东西有啥用呢,只是给cpu执行的指令。
数据则不一样,每个对象在内存里面都有自己的一份数据。数据是放到数据段的。
咩个程序加载后,内存会分为数据块和 代码块等多个 内存区域。不同的内容存放于不同的区域里面。
---------------------------------------------------
(1)可以定义指向类数据成员的指针吗?
(2)为什么可以定义指针指向实例化后 类对象的数据成员;
这个是数据,是可以的。不过对于复杂对象来说一般也不推荐这么做。一般用于简单struct的,没有继承的时候通过直接操纵指针有时候会方便一些。
你认为类实例化之后也具有自己的函数,而且每个实例的不同?
"指向类公共成员函数的指针void (Time::*p)() =&Time::get_time;"
这个类型的指针可以指向t1.get_time()的,因为它们类型相同,作用域相同。
void (*p)();
p=t1.get_time();
不行么