0

我有一个类,它有一个成员函数,我想在非成员函数中调用该成员函数。

void mouseEvent(int evt, int x, int y, int flags, void* param);
class CMainClass
{

private:
// Xcoordinate of the click event
     int Xcoordinate;
public:
// Xcoordinate get method
         int CMainClass::GetXcoordinate()
         {
          return Xcoordinate;
         }

// Xcoordinate set method
         void CMainClass::SetXcoordinate(int newVal)
         {
           CMainClass::Xcoordinate = newVal;
         }

};


void mouseEvent(int evt, int x, int y, int flags, void* param)
{
      CMainClass::SetXcoordinate(x);

}

C++ 非静态成员引用必须相对于特定对象

4

1 回答 1

0

忽略与您的代码无关的问题,您正在调用成员函数而不创建对象。

在 mouseEvent 中,您需要使用一个对象来调用 SetXcoordinate。

void mouseEvent(int evt, int x, int y, int flags, void* param)
{
    //CMainClass obj();
    obj.SetXcoordinate(x);
}

如果您在其他地方创建对象,则对象创建不必在同一个函数中。

于 2019-09-23T11:15:17.060 回答