类中多个对像中,数据成员有多份,而成员函数仅有一份。如何获得成员函数的地址呢。及如何证明,函数仅有一份呢?
请看如下代码分析:
#include <iostream>
#include <stdio.h>
using namespace std;
class A
{
public:
void b(){cout << "call b()" << endl;}
void c(){
cout << "call c()" << endl;
printf("%p\n",(&A::b));
// cout<<&A::b<<endl;
}
};
int main()
{
class A a,b,c;
a.c();
b.c();
c.c();
//或
void (A::*p)();
p = &A::b;
(c.*p)();
return 0;
}
编译输出:
call c()
00420180
call c()
00420180
call c()
00420180
call b()