我有3个类 - GLWidget,窗口和规则。 Window创建一个名为'm_glWidget'的GLWidget对象,我试图从类规则中访问这个对象。我尝试过使用'extern'并改变一些东西,但似乎没有任何东西能够实现。我得到的最接近的一个错误是“为'm_glWidget'指定的存储类”,但我不确定这意味着什么。这是我的代码:声明我的对象为'extern'给出“存储类指定”错误
在window.h
#include "glwidget.h"
#include "rules.h"
class GLWidget; class rules;
class Window : public QDialog, public Ui::frmMain
{
Q_OBJECT;
public:
Window(QWidget *parent = 0);
rules *gameRules;
GLWidget *m_glWidget;
Window.cpp
#include "rules.h"
#include "glwidget.h"
class rules; class GLWidget;
using namespace std;
Window::Window(QWidget *parent):QDialog(parent)
{
m_glWidget = new GLWidget;
gameRules = new rules;
rules.h
#include "windows.h"
#include "glwidget.h"
class rules{
public:
rules();
extern GLWidget *m_glWidget;
rules.cpp
#include "window.h"
#include "glwidget.h"
using namespace std;
rules::rules(){
}
void rules:: print(){
cout << m_glWidget->x << endl;
}
'extern'不能应用于班级成员。 – 2014-11-25 10:52:42
好的,谢谢。任何建议在另一种方式从规则访问GLWidget中的变量? – hunterge 2014-11-25 10:55:26
通常,在规则中添加对Window实例的引用。 – user3159253 2014-11-25 11:00:45