【发布时间】:2012-01-26 01:00:55
【问题描述】:
我相信这可能是#include 或前向声明的问题,而不是我的语法问题,因为我目前遇到“无效使用不完整类型'struct MainWindow'”和“前向声明'struct MainWindow' 当我尝试在 Qt Creator (Qt 4.7.4) 中构建以下内容时:
MYCLASS.H
#ifndef MYCLASS_H
#define MYCLASS_H
class MainWindow;
class MyClass
{
public:
MyClass(MainWindow * parent);
void callParentFunction();
private:
MainWindow *myPointer;
};
#endif // MYCLASS_H
MYCLASS.CPP
#include "myclass.h"
MyClass::MyClass(MainWindow *parent) : myPointer(parent)
{
}
void MyClass::callParentFunction()
{
myPointer->setSpinBoxValue(500);
}
主窗口.H
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QDoubleSpinBox>
#include "myClass.h"
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();
void setSpinBoxValue(double x);
private:
QDoubleSpinBox *mySpinBox;
MyClass *myObject;
};
#endif // MAINWINDOW_H
主窗口.CPP
#include "mainwindow.h"
MainWindow::MainWindow()
{
mySpinBox = new QDoubleSpinBox;
setCentralWidget(mySpinBox);
myObject = new MyClass(this);
myObject->callParentFunction();
}
void MainWindow::setSpinBoxValue(double x)
{
mySpinBox->setValue(x);
}
我会很感激任何想法。谢谢!
【问题讨论】: