私はC ++の初心者で、最近関数のポインターを学習していますが、関数のポインターの使用法に少し混乱しています。
私は次のコードを練習しました:
#include <iostream>
#include <sstream>
using namespace std;
int subtraction(int a,int b){
return a-b;
}
int main(int argc, const char * argv[])
{
int (*minus)(int,int)=subtraction;
cout<<minus(5,4);
return 0;
}
それはうまくいきます。だから、私は少しバリエーションを試します:
#include <iostream>
#include <sstream>
using namespace std;
int subtraction(int a,int b){
return a-b;
}
int main(int argc, const char * argv[])
{
int *minus(int,int)=subtraction;//only here different!
cout<<minus(5,4);
return 0;
}
私はMac上のXcodeでそれを練習しました.それは私にエラーを与えます:
不正な初期化子 (変数のみを初期化できます)
しかし、コンパイラは2つが同じであることを認識できると思いますが、なぜ括弧のペアが必要なのですか?