![]() |
#2
TonyDeng2014-06-04 02:39
|

#include<iostream>
#include<vector>
using namespace std;
int cal(int a,int b)
{
cout<<a<<b<<endl;
return a+b;
}
int main()
{
int x=9;
int y=8;
typedef int q(int,int);
vector<q*> v(4,0); //若把这里改为 q* v;
v[0]=cal; // v=cal;
cout<<v[0](x,y); // v(x,y)
//
return 0;
}
为啥按注释里那样写就没错,我换用vector后就有问题。
我把编译器报错的说明放这:
error: invalid conversion from 'int' to 'std::vector<int (*)(int, int)>::value_type {aka int (*)(int, int)}' [-fpermissive]|
我的理解是一个整形转换为vector<int (*)(int, int)>不合法,但没找到啊
请各位帮忙看看,谢谢了