gpt4 book ai didi

C++:让包含类从包含类调用函数的问题

转载 作者:行者123 更新时间:2023-11-28 01:00:30 24 4
gpt4 key购买 nike

我相信这可能是#including 或前向声明的问题,而不是我的语法问题,因为我目前收到“无效使用不完整类型‘struct MainWindow’”和“前向声明当我尝试在 Qt Creator (Qt 4.7.4) 中构建以下内容时“struct MainWindow”:

MYCLASS.H

#ifndef MYCLASS_H
#define MYCLASS_H

class MainWindow;

class MyClass
{
public:
MyClass(MainWindow * parent);
void callParentFunction();

private:
MainWindow *myPointer;
};

#endif // MYCLASS_H

我的类(class).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);
}

如果有任何想法,我将不胜感激。谢谢!

最佳答案

您需要在 myclass.cpp myclass.h 中包含 mainwindow.h。在 myclass.cpp 中,您调用了 MyClass 的方法(在 MyClass::callParentFunction 中),但此时编译器仍然只有MainWindow 的前向声明。

关于C++:让包含类从包含类调用函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9006670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com