2016-07-29 58 views
1

我正在使用提供函数foo(Widget*)的函数库。包装std :: map并提供指向元素的指针

我的部件存储在

struct WidgetManager { 

    std::map<int, Widget> dict; 

    ??? getWidget(int id); 

} 

std::map我本来存储(原始)的Widget指针只是因为这是方便将它们传递给foo。 如果我想要将实际的Widget存储在地图中,返回类型getWidget应该是什么样的,以便我可以将Widget的指针传递给foo?我不得不使用itr->second来获取Widget(指针)。

回答

2

在将小部件传递给foo(Widget*)函数以获取指向它的指针之前,您可以使用&

struct WidgetManager { 
    std::map<int, Widget> dict; 
    Widget& getWidget(int id); 
} 

使用

WidgetManager wm; 
//... 
Widget& w = wm.getWidget(id); 
foo(&w); 
//... 
相关问题