我有类排序指针,以及从其继承的类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/

10-09 06:52