我正在使用一个提供函数foo(Widget*)
的库。
我的小部件存储在
中struct WidgetManager {
std::map<int, Widget> dict;
??? getWidget(int id);
}
最初我在std::map
中存储(原始)Widget指针只是因为将它们传递给foo很方便。
如果我想在地图中存储实际的Widgets,那么getWidget
的返回类型应该是什么,以便我可以将Widget的指针传递给foo?
我被迫使它成为类型迭代器,但我不喜欢我必须访问itr->second
来获取Widget(指针)。
答案 0 :(得分:2)
您可以在将窗口小部件传递给&
函数之前使用foo(Widget*)
来获取指向它的指针。
struct WidgetManager {
std::map<int, Widget> dict;
Widget& getWidget(int id);
}
用法
WidgetManager wm;
//...
Widget& w = wm.getWidget(id);
foo(&w);
//...