我在使用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(因为它没有显示。
答案 0 :(得分:1)
_musics.sort(byTitleAscend);
行应该在播放列表类范围内。如果不是,则该行应为
_musics.sort(Playlist::byTitleAscend);
答案 1 :(得分:0)
实际上有几个错误, @cokceken是对的,因为我忘了添加范围,真正的问题是我忘了调整comp函数的范围..
然后没有将该功能设置为静态它也无法工作,所以也要感谢@molbdnilo!