读书人

函数指针 函数重载有关问题

发布时间: 2013-01-04 10:04:14 作者: rapoo

函数指针 函数重载问题
比如有两个函数:
void f( int a ) { ... }
void f( char b ) { ... }

有如下语句:
void (*pfun)( int a );
pfun = (void (*)( int ))f; ///这里, 因为f有两个重载, 怎样去选择那个对的函数
好像编译器不会为我选择一个正确的函数..
他会报错, 说不能将重载函数强制转换到 void (*)( int a )
英雄救我啊.

[解决办法]
pfun = (void (*)( int ))f;
改成
pfun = f;
[解决办法]


#include <iostream>
using namespace std;

void f( int a )
{
cout << " int : " << a << endl;
}

void f( char b )
{
cout << " char : " << b << endl;
}

int main()
{
void (*pfun)( int a );
pfun = f;
int a = 3;
pfun(a);

return 0;
}

[解决办法]
pfun = (void (*)( int ))f;
改成
pfun = f;

pfun = *f;
[解决办法]
引用:
pfun = (void (*)( int ))f;
改成
pfun = f;

pfun = *f;

pfun = &f;
[解决办法]
引用:
引用:

pfun = (void (*)( int ))f;
改成
pfun = f;

pfun = *f;

pfun = &f;

貌似函数 地址 f与 &f,结果一样吧
[解决办法]
引用:
引用:
引用:

pfun = (void (*)( int ))f;
改成
pfun = f;

pfun = *f;

pfun = &f;

貌似函数 地址 f与 &f,结果一样吧


C/C++语言的特征

读书人网 >C++

热点推荐