我有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