【发布时间】:2016-10-15 23:26:27
【问题描述】:
编译包含此类的代码:
class Dessin
{
private:
vector<Figures*>T;
public:
void ajouteFigure(const Figures& f) const
{
for(auto element: T)
{
T.push_back(f);
}
}
};
产生错误:
[错误] 调用没有匹配的函数 'std::vector::push_back(const Figures&) const'
这是我应该在 main() 中做的事情
Dessin s;
s.ajouteFigure(Cercle(1.1));
为什么这不起作用?
【问题讨论】:
-
@AlexD 虽然从骨子里就有缺陷。
-
不要将原始指针存储在
std::vector中 - 请改用std::vector<std::unique_ptr<Figure>>。 -
@AlexD 我试过了,它不起作用。同样的错误
-
@AlexD 这行得通,谢谢。我可以知道具体原因吗?
-
这段代码太破了,没有答案可以帮助你。