错误C2064:term不计算为采用0参数的函数

Gol*_*Lee 9 c++ pointers map

大家!我在地图容器中维护一组通道数据,通过其通道名称可以从中访问单个通道数据.关于这一点,我写了一个简单的函数GetIRChannelData(请参阅下面的代码).在compliing时,语句抛出了pusIRChannelData = cit->second();一个错误,该错误在读取

error C2064: term does not evaluate to a function taking 0 arguments
Run Code Online (Sandbox Code Playgroud)

要做的所有功能只不过是在地图容器中搜索给定的通道名称/ ID,并且如果找到则将数据指针分配给时间指针.你能告诉我什么是错的吗?

const Array2D<unsigned short>* GetIRChannelData(std::string sChannelName) const
{   
    const Array2D<unsigned short>* pusIRChannelData = NULL;

    for (std::map<std::string, Array2D<unsigned short>* >::const_iterator cit =    m_usIRDataPool.begin(); cit != m_usIRDataPool.end(); ++cit) 
    {   
        std::string sKey = cit->first; 

        if (sKey == sChannelName)
        {   
           pusIRChannelData = cit->second(); // Error occurred on this line
           break;
        }
    }

    return pusIRChannelData;
}
Run Code Online (Sandbox Code Playgroud)

Den*_*ose 13

错误消息非常清楚......您调用的函数不存在. map::iterator指向a std::pair,它有两个成员对象,firstsecond.请注意,这些不是功能.()从相关的行中删除,错误应该消失.

  • 不,错误信息不明确,特别是对于新手.一个明确的信息就像是"std :: pair没有函数'second()'.你的意思是成员变量'second'吗?" (3认同)