C ++ list :: sort <unresolved overloaded =“”function =“”type =“”>

时间:2016-11-29 07:45:51

标签: c++ list

我在使用c ++时遇到问题,尝试使用我自己的功能对播放列表进行排序,但它无法正常工作..我查了很多帖子,谈到可能存在的类似问题,但我找不到任何解决方案。 (c++ - <unresolved overloaded function type> - 我发布了与此帖相同的错误,但不确定该怎么做才知道。

我可以提示吗? :) 这是我的比较函数,comp只是比较小写的字符串。

bool Playlist::byTitleAscend (Music *a, Music *b) { return comp(a->getTitle(), b->getTitle()); }

然后我尝试用它对我的列表进行排序,它会抛出一个错误:/

_musics.sort(byTitleAscend); // ERROR, TODO: why ? 

我希望它足够清楚!

在文档中他们使用const&amp;但它也说过,如果我们不改变对象,那就没有必要了。

错误:

  

MusicReader / playlist.cpp:148:错误:没有匹配函数来调用&#39; std :: list(Music *):: sort(未解析的重载函数类型)&#39;            _musics.sort(byTitleAscend);

我替换了&lt; by(因为它没有显示。

2 个答案:

答案 0 :(得分:1)

_musics.sort(byTitleAscend);

行应该在播放列表类范围内。如果不是,则该行应为

_musics.sort(Playlist::byTitleAscend);

答案 1 :(得分:0)

实际上有几个错误, @cokceken是对的,因为我忘了添加范围,真正的问题是我忘了调整comp函数的范围..

然后没有将该功能设置为静态它也无法工作,所以也要感谢@molbdnilo!