2015-07-11 73 views
-5
bool (__fastcall fun)(float par1, float par2) 
{ 
    return (par1 == par2) ? true : false; 
} 

bool (__fastcall *newFun())(std::string str) 
{ 
    //... 
    return fun; 
} 

我有错误:错误返回值类型不匹配函数类型。功能返回指向另一种类型的函数 - C++

出了什么问题?

+1

为什么'std :: string'? – Quentin

+0

@Quentin这是一个完整的代码fragemet。 paremeter'std :: string'将在稍后使用。 – superman

+1

请仔细阅读:[问] – David

回答

2

这能否帮助:

bool (__fastcall fun)(float par1, float par2) 
{ 
    return (par1 == par2) ? true : false; 
} 

bool (__fastcall *newFun(std::string str))(float par1, float par2) 
{ 
    //... 
    return fun; 
} 

int main() 
{ 
    auto p = newFun("someString"); 
    cout << p(1.0, 1.0) << endl; 
    cout << p(1.0, 1.1) << endl; 
    return 0; 

} 

也许你想读How do function pointers in C work?

我认为这是一个函数指针相当不错的讨论。