sort() 中的比较函数 compare 要声明为静态成员函数或全局函数,不能作为普通成员函数,否则会报错。
因为:非静态成员函数是依赖于具体对象的,而 sort() 这类函数是全局的,因此无法再 sort() 中调用非静态成员函数。静态成员函数或者全局函数是不依赖于具体对象的, 可以独立访问,无须创建任何对象实例就可以访问。同时静态成员函数不可以调用类的非静态成员。
转载于:C++中得sort函数的比较函数(第三个参数)为什么要声明为static_weixin_30813225的博客-优快云博客