函数名不是代表函数的入口地址吗?
#include "stdafx.h"
#include<iostream>
#include<iomanip>
using namespace std;
class A
{
public:
int x;
A(int i){x=i;}
void fun1(int j)
{
x+=j;
cout<<"fun1:"<<x<<endl;
}
void fun2(int j)
{
x+=j;
cout<<"fun2:"<<x<<endl;
}
};
int main()
{
A c1(2),c2(5);
void (A::*pfun)(int)=A::fun1;//报错!!
(c1.*pfun)(5);
pfun=A::fun2;//报错!!
(c2.*pfun)(10);
return 0;
}
1>------ 已启动生成: 项目: Test, 配置: Debug Win32 ------
1>正在编译...
1>Test.cpp
1>c:\documents and settings\administrator\my documents\visual studio 2008\projects\test\test\test.cpp(37) : error C3867: “A::fun1”: 函数调用缺少参数列表;请使用“&A::fun1”创建指向成员的指针
1>c:\documents and settings\administrator\my documents\visual studio 2008\projects\test\test\test.cpp(41) : error C3867: “A::fun2”: 函数调用缺少参数列表;请使用“&A::fun2”创建指向成员的指针
1>生成日志保存在“file://c:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\Test\Test\Debug\BuildLog.htm”
1>Test - 2 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
函数名不是代表函数的入口地址吗?? 怎摸还要再次取地址 &A::fun1???