我认为这是一项简单的任务,但我还没有找到解决方案:
这有效:
vector<A*> v = vector<A*>{a1, a2};
b->add(v);
这不编译(方法无法解决):
b->add(vector<A*>{a1, a2});
添加签名:
void add(vector<A*>& v);
我做错了什么?
答案 0 :(得分:3)
add
需要vector<A*>&
。临时数不能绑定到非常量左值参考。如果add
未修改其参数,您可以将签名更改为void add(const vector<A*>&)
,以便传递临时值。