尝试编译以下代码我得到这个编译错误,我该怎么办?
ISO C++ 禁止使用不合格或带括号的非静态成员函数的地址来形成指向成员函数的指针。
class MyClass {
int * arr;
// other member variables
MyClass() { arr = new int[someSize]; }
doCompare( const int & i1, const int & i2 ) { // use some member variables }
doSort() { std::sort(arr,arr+someSize, &doCompare); }
};
原文由 Navid 发布,翻译遵循 CC BY-SA 4.0 许可协议
只需将您的辅助函数设为静态,您将在排序函数中传递它。
例如
现在你可以在你的排序函数中传递它