C2679解决不了,vector里面存放了指针,传递不出去?
用到一个API,只接受指针数组,但是我只有一个存放了指针的vector:
于是我写:
vector<class*> Vector;
Array1[i]=Vector[i];
Array2[i]=Vector[i]->function();
function()返回的是一个与Array2类型相同的指针。
两个句子都报错啊:
error C2679: 二进制“=” : 没有找到接受“<未知>”类型的右操作数的运算符
这个“未知”神马意思?Vector就是在同一个文件里上面定义的啊,很清楚。
难道指针的=运算符也需要重载?
[解决办法]
Array2[i] 这是一个指针么???
[解决办法]
Array的代码贴出来
[解决办法]
你的两个数组必须定义成同样类型的指针数组才行。而且不能一次将它们赋值,得逐个元素赋值。
[解决办法]
class A{public: int * fun(){return new int(1);}};int main(int argc, char *argv[]){ int *arr[10]; vector<A*> vc(2); arr[2] = vc[0]->fun(); return 0;}
[解决办法]
信息不足,无法判断具体错误.
建议:
1.检查Array1,Array2的类型.
2.检查vector<class*> Vector;中 class是否写错.
3.检查 "class"的成员函数function()的返回值是否和 Array2[0] 匹配;