我有类排序指针,以及从其继承的类sortID。
class sortID具有operator(),即时通讯试图将其发送到此函数,以对我的列表进行排序。它给我错误:
“排序不能用作功能。”
#include "Sort.h"
#include "SortID.h"
class Movie{
list<int*> somelist;
public:
void Movie::sortList()
{
Sort* sorter = new sortID();
this->someList.sort(sorter);
}
}
这是类sortID:
#include "sort.h"
class SortID : public Sort {
bool sortID::operator()(const int* a, const int* b){
return a.getId() < b.getId();
}
class Sort{
public:
virtual bool operator()(const int* a, const int* b)=0;
救命..?
最佳答案
list::sort
不需要指针。
只需传递一个对象:
void Movie::sortList()
{
someList.sort(SortID());
}
(您发布的代码中还有其他错误,但是我想这些错误是由于您应该在复制和粘贴时重新键入而引起的。)
关于c++ - 试图使用operator()错误补偿不能使用C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34157153/