addWidget(const Widget& nWidget){
Widgets.push_back(nWidget);
我正在尝试将x *中的对象通过引用发送到向量保持,我得到以下错误
1 IntelliSense: no instance of overloaded function "std::vector<_Ty, _Alloc>::push_back [with _Ty=Widget *, _Alloc=std::allocator<Widget *>]" matches the argument list
argument types are: (const Widget *)
object type is: std::vector<Widget *, std::allocator<Widget *>>
我在这里缺少什么?
答案 0 :(得分:0)
根据错误消息,Widgets
似乎是std::vector<Widget *>
。如果是这种情况,那么只需通过指向nWidget
:
Widgets.push_back(&nWidget);
以及将Widgets
更改为std::vector<Widget const *>
,或将参数更改为Widget &
(删除const
) - 将指针指向Widget const &
}导致Widget const *
,因此您将收到一个错误,即您要丢弃const限定符。