【发布时间】:2019-08-27 13:02:21
【问题描述】:
我需要将一个对象(定义为接口)传递给一个方法,但我不知道该怎么做。 该方法必须将此对象添加到地图中。显然,传递的对象将是接口 IFigure 的女儿。
void Drawing::addFigure(string id, IFigure figure) {
drawings.insert(id, figure);
}
地图是这样定义的(在绘图类中):
map<string,IFigure> drawings;
感谢您的宝贵时间!
【问题讨论】:
-
你的代码出了什么问题?
-
查找“对象切片”
-
@dedecos 它要切片了。
-
您可能需要
map<string,IFigure*> drawings;或map<string,std::unique_ptr<IFigure>> drawings;或map<string,std::shared_ptr<IFigure>> drawings;(或map<string,std::weak_ptr<IFigure>> drawings;)之一 -
void Drawing::addFigure(string id, IFigure* figure)
标签: c++ dictionary methods interface