注册 登录
编程论坛 C++教室

函数名——入口地址

尝鲜 发布于 2010-11-11 21:11, 1972 次点击
关于函数名与地址的问题:
#include <iostream>
#include<iomanip>
#include<string>
using namespace std;
void FucA(string str);
void FucA(void);
void FucB(void);
typedef void (*Fucp)(string str);
typedef void (*Fuc)();
int main()
{   
    string str("str");
    Fucp fucp=FucA;
    Fuc  fuc[]={FucA,FucB};
    Fuc  *pfuc=fuc;
    FucA();
    cout<< *pfuc++ <<endl;
    FucA(str);
    cout<< fucp <<endl;
    FucB();
    cout<<FucB<<"   "<<*pfuc<<endl;
  
    return 0;
}
void FucA(void)
{
    cout<<"FucA   "<<endl;
    return ;
}
void FucA(string str)
{
    cout<<str<<endl;
}
void FucB(void)
{
    cout<<"FucB    "<<FucB<<endl;
    return ;
}
如果函数没有重载我们可以直接用函数名来得到函数的地址
但是函数重载了就不能直接用函数名来得到了,我是用函数指针的方式来得到的,不知道大家还有没有别的不同的方法。。
4 回复
#2
玩出来的代码2010-11-11 23:07
怎么感觉你说的都一样呢,若没有重载你要想保存一个函数的地址,你把这个函数的地址存哪?不是放在指向函数的指针中?
#3
尝鲜2010-11-11 23:58
可以放在一个(long *)里啊。。。 。。。反正就是一个4个字节的。。。
不知道还有没有其他的方法。。
#4
kingsroot2010-11-12 13:23
C++机制本来就自己推算重载函数  你写这个有意思么?
#5
尝鲜2010-11-12 14:40
就是得到函数的地址,然后取出函数相应的模块,接着在EXE文件中找。。。目的得出某种结论吧
1