【问题标题】:How to instantiate an object that is accessible by the functions of mainwindow? [closed]如何实例化一个可被主窗口功能访问的对象? [关闭]
【发布时间】:2015-01-31 00:52:57
【问题描述】:

我想创建一个“播放器”对象,我可以使用主窗口的功能访问它,例如按钮单击操作。

如果我这样做,它将不在范围内:

void MainWindow::on_btn_newgame_clicked()
{ 
    Player p;
}

void MainWindow::on_btn_north_clicked()
{
      p->location_y++;
}

我尝试全局实例化,但无法引用 p。

我应该如何以及在哪里执行此操作?

【问题讨论】:

  • 如果你不想使用成员变量,你可以通过信号传递它并在用户定义的信号槽和槽中捕获它。
  • 请不要在您的标题中添加标记或标签。如果您自己解决了这个问题,请添加(详细)答案,以便其他人受益。如果 James 的帖子对您​​有所帮助,请考虑将其标记为已接受的答案。

标签: c++ qt oop object instance


【解决方案1】:

如果您想访问类中的状态,则该状态需要是该类的成员。

注意:这不是 Qt 独有的。

例如:

class Foo
{
    public:
        void memberFunction()
        {
            p->getName(); // This member function may access member data
        }

    private:
        Player* mPlayer; // This is a class member
};

【讨论】:

  • 是的,只需添加代码“Player p;”在 mainwindow.h 文件中的“class MainWindow{ ... }”代码中
猜你喜欢
  • 1970-01-01
  • 2018-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多