2012-05-04 83 views
0

假設你有下面的方法:好奇傳遞功能參數 - C++

double * myMethod(double (*f)(double[]), double *x, int size) 
{ 
    //do something and return 
} 

爲什麼我不能寫如下?

double * myMethod(double (*f)(double *), double *x, int size) 
{ 
    //do something and return 
} 

將*替換爲*?

+0

他們倆似乎都在工作 – nims

+0

你會得到什麼錯誤? – TemplateRex

+0

爲什麼?有更好的解決方案,更簡單,更易於理解和調試。 –

回答

1

可以,但因爲數組棄用的指針,它們實際上具有相同的簽名,因此,如果你得到一個錯誤,那是因爲你試圖重新定義函數:

http://ideone.com/E1Z7B的作品,因爲我改名第二個功能。

+0

另請參閱:http://stackoverflow.com/questions/5192068/c-char-argv-vs-char-argv對於類似的問題。 – TemplateRex