如何在 C++ 中调用其自身 class 中的非静态成员函数

How to call a non-static member function within its own class in C++

我正在用 C++ 构建 class Boggle。在 Boggle class 中,我声明了一个名为 boardIndex:

的结构类型
struct Boggle::boardIndex {
    int row, col;
};

和一个回调函数来比较两个 "boardIndex"s:

int Boggle::CmpByIndex(boardIndex a, boardIndex b)

我想将回调函数传递给 Boggle.cpp 文件中的一组 boardIndex 元素:

Set<boardIndex> usedIndices(CmpByIndex); 

这可能吗?在当前的形式中,我会得到一个错误 "reference to non-static member function must be called." 我没有 Boggle class 的任何对象 - 这里有另一种调用 CmpByIndex 函数的方法吗?

I don't have any objects of the Boggle class - is there another way of calling the CmpByIndex function here?

如果你没有任何对象,那么你不能调用非静态成员函数。所以你有 2 个解决方案:

  • 将此函数设置为静态或非 class Boogie
  • 的成员
  • 创建或以某种方式获取 Boogle 的实例并将其绑定到此方法的调用