如何修复'未解决的重载函数类型?'

时间:2016-08-08 15:35:16

标签: c++

这是班级

map<int, Channel> m_Channel(int, ChannelType);

这是地图

Channel

为什么尝试像这样添加m_Channel[channelNumber] = Channel(channelNumber, channelType); 到地图

‘<unresolved overloaded function type>[int]’

导致此编译错误?

  

错误:无效的类型int   数组下标

# Save a list of what you had installed pip freeze > freeze.txt # Trash the entire virtualenv deactivate rm -rf lib/ bin/ share/ man/ include/ .Python pip-selfcheck.json # Create it anew virtualenv . # Install all libraries you had before pip install -r freeze.txt 似乎是数组下标的完全有效类型。

2 个答案:

答案 0 :(得分:4)

这一行

map<int, Channel> m_Channel(int, ChannelType);

声明一个名为m_Channel的函数,它接受intChannelType并返回map<int, Channel>。我假设你希望它成为一个成员变量。

map<int, Channel> m_Channel;

请参阅https://en.wikipedia.org/wiki/Most_vexing_parse

答案 1 :(得分:1)

map<int, Channel> m_Channel(int, ChannelType);

如果是函数声明,它有两个参数intChannelType,则返回map<int, Channel>

您可能只需要map<int, Channel> m_Channel

这样的地图

这需要类Channel的默认构造函数

所以你应该

class Channel {
public:
    Channel(int channelNumber, ChannelType channelType);
    Channel() {}
};