C++ 在其实例类方法中调用QMainWindow方法

C++ 在其实例类方法中调用QMainWindow方法,c++,qt,methods,qt4,qmainwindow,C++,Qt,Methods,Qt4,Qmainwindow,我有一个main窗口class class MainWindow : public QMainWindow { customClass * obj; public: void foo(bool); } 这是我的课程: class customClass { void foo1(bool); } 现在,我想调用foo1()中的foo()方法 如何做到这一点?使用依赖项注入模式的方法之一: 你可以让你的主窗口实现单例模式(如果它适用于你的设计),然后你可以直接从你喜欢的

我有一个
main窗口
class

class MainWindow : public QMainWindow
{
    customClass * obj;
public:
    void foo(bool);
}
这是我的课程:

class customClass 
{
    void foo1(bool);
}
现在,我想调用
foo1()
中的
foo()
方法


如何做到这一点?

使用依赖项注入模式的方法之一:


你可以让你的主窗口实现单例模式(如果它适用于你的设计),然后你可以直接从你喜欢的任何地方获取一个实例。

你可以让你的
customClass
的构造函数获取一个指向
MainWindow
的指针,它存储在一个成员变量中供以后使用

class customClass 
{
public:
  customClass(MainWindow* mainWindow)
  : mainWindow_(mainWindow)
  {
  }

  void foo1(bool b) {
    mainWindow_->foo(b);
  }

private:
  MainWindow* mainWindow_;
}

对于初学者来说,这不是很简单吗?它尽可能地简单。您应该将MainWindow类的指针或引用传递给customClass类的构造函数,并保存在某个成员中。那你就可以用了。
class customClass 
{
public:
  customClass(MainWindow* mainWindow)
  : mainWindow_(mainWindow)
  {
  }

  void foo1(bool b) {
    mainWindow_->foo(b);
  }

private:
  MainWindow* mainWindow_;
}