0

我试图编写一个便利函数来提供指向 unordered_map 的指针,该指针隐藏在另一个对象包含的对象内。出于某种原因,编译器(Visual Studio 2010)迫使我将指针声明为指向 const 对象的指针。

函数代码如下所示:(我不希望它有const返回类型):

const ezx::iserver::strategy_map* strategy_map(const ezx::iserver::StrategyInfo* strategyInfo)
{
  if (strategyInfo)
  {
     const ezx::iserver::strategy_map* map = &strategyInfo->strategyTVS.tagValues;
     return map;
   }
   return NULL;
}

该对象是在没有任何 const 修饰符的情况下定义的:

class TagValueMsg : public EZXMsg
{
    public:     
      strategy_map tagValues;
      ...
}

此 TagValueMsg 作为成员字段包含在另一个类中。

class StrategyInfo : public EZXMsg
{
     public:
    TagValueMsg strategyTVS;
        ...
}

由于任何const地方都没有声明,我不明白为什么const ezx::iserver::strategy_map*需要?

4

1 回答 1

4

因为您的封闭对象也在const传递给函数时:

strategy_map(const ezx::iserver::StrategyInfo* strategyInfo)
于 2013-10-08T17:00:11.537 回答