如何在C ++中调用自己的类中的非静态成员函数

时间:2017-03-08 22:25:49

标签: c++ class struct callback boggle

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

struct Boggle::boardIndex {
    int row, col;
};

还有一个回调函数来比较两个“boardIndex”:

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

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

Set<boardIndex> usedIndices(CmpByIndex); 

这可能吗?在当前形式中,我将收到一个错误,即“必须调用对非静态成员函数的引用”。我没有Boggle类的任何对象 - 在这里调用CmpByIndex函数有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

  

我没有Boggle类的任何对象 - 是否有另一种方法可以调用CmpByIndex函数?

如果您没有任何对象,则无法调用非静态成员函数。所以你有2个解决方案:

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