2015-07-11 74 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?

我認爲這是一個函數指針相當不錯的討論。