如何在';{';在QT c+;+; 我用QT C++实现了一个图书管理系统,我有一个材质类,是 qWin窗口>代码,当我点击菜单栏中的虚构部分时,应该打开一个 qdiaRoBOS。但是,虽然我实现了这个概念,但是我得到了一个错误,即“之前的期望类名{”。请帮助查找错误。提前感谢
这是材料如何在';{';在QT c+;+; 我用QT C++实现了一个图书管理系统,我有一个材质类,是 qWin窗口>代码,当我点击菜单栏中的虚构部分时,应该打开一个 qdiaRoBOS。但是,虽然我实现了这个概念,但是我得到了一个错误,即“之前的期望类名{”。请帮助查找错误。提前感谢,c++,qt,C++,Qt,这是材料 #ifndef MATERIALS_H #define MATERIALS_H #include <QMainWindow> #include "materialinner.h" #include "fictionsection.h" namespace Ui { class Materials; } class Materials : public QMainWindow, public MaterialInner { Q_OBJECT public:
#ifndef MATERIALS_H
#define MATERIALS_H
#include <QMainWindow>
#include "materialinner.h"
#include "fictionsection.h"
namespace Ui {
class Materials;
}
class Materials : public QMainWindow, public MaterialInner
{
Q_OBJECT
public:
explicit Materials(QWidget *parent = 0);
~Materials();
private slots:
void on_btnAdd_clicked();
void on_btnLoad_clicked();
void on_btnEdit_clicked();
void on_tblMaterial_clicked(const QModelIndex &index);
void on_btnSearch_clicked();
void on_actionClear_triggered();
void createAction();
void on_actionEdit_triggered();
void on_actionDelete_Records_triggered();
void on_actionFiction_section_triggered();
private:
Ui::Materials *ui;
FictionSection *fic;
};
#endif // MATERIALS_H
#如果材料不合格#
#定义材料
#包括
#包括“materialinner.h”
#包括“第.h节”
名称空间用户界面{
课堂材料;
}
类别材料:公共QMainWindow、公共MaterialInner
{
Q_对象
公众:
显式物料(QWidget*parent=0);
~Materials();
专用插槽:
单击时无效();
单击鼠标左键时无效();
单击时无效();
单击的材料无效(常数QModelIndex和索引);
单击搜索时无效();
操作时无效清除已触发();
void createAction();
在_actionEdit_tricked()上无效;
操作删除记录时无效已触发();
在“动作小说”部分“触发”时无效();
私人:
Ui::Materials*Ui;
第*fic节;
};
#endif//MATERIALS\u H
这是material.cpp
#include "materials.h"
#include "ui_materials.h"
#include <QDebug>
#include <QMessageBox>
Materials::Materials(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Materials)
{
ui->setupUi(this);
// QObject ::connect(ui->lneditSearch,SIGNAL(textChanged(const QString &)),this,SLOT(displaySearch()));
}
Materials::~Materials()
{
delete ui;
}
void Materials::on_actionFiction_section_triggered()
{
/* this->hide();
fiction = new FictionSection();
fiction->show();*/
this->hide();
fic = new FictionSection();
fic->show();
}
#include "materials.h"
#include "ui_materials.h"
#include "fictionsection.h"
#include <QDebug>
#include <QMessageBox>
Materials::Materials(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Materials)
{
ui->setupUi(this);
// QObject ::connect(ui->lneditSearch,SIGNAL(textChanged(const QString &)),this,SLOT(displaySearch()));
}
void Materials::on_actionFiction_section_triggered()
{
this->hide();
fiction = new FictionSection();
fiction->show();
}
#包括“materials.h”
#包括“ui_materials.h”
#包括
#包括
材质::材质(QWidget*父项):
QMainWindow(父级),
ui(新ui::材质)
{
用户界面->设置用户界面(此);
//连接(ui->lneditSearch,信号(textChanged(constqstring&)),这个,插槽(displaySearch());
}
材料::~Materials()
{
删除用户界面;
}
作废材料::在行动小说部分触发()
{
/*这个->隐藏();
虚构=新虚构部分();
小说->表演()*/
这个->隐藏();
fic=新的部分();
fic->show();
}
这是一节
#ifndef FICTIONSECTION_H
#define FICTIONSECTION_H
#include <QDialog>
#include "materials.h"
#include "materialinner.h"
namespace Ui {
class FictionSection;
}
class FictionSection : public QDialog, public Materials
**{**
Q_OBJECT
public:
explicit FictionSection(QWidget *parent = 0);
~FictionSection();
private:
Ui::FictionSection *ui;
};
#endif // FICTIONSECTION_H
#如果不符合第H节
#定义虚拟部分
#包括
#包括“materials.h”
#包括“materialinner.h”
名称空间用户界面{
班级管理科;
}
课堂部分:公共QDialog、公共材料
**{**
Q_对象
公众:
显式虚拟部分(QWidget*parent=0);
~1节();
私人:
Ui::虚拟部分*Ui;
};
#endif//U H段
functionsection.cpp类中发生错误。发生错误的大括号为粗体
在下面的代码片段中,它给出了错误“请求memeber'show'不明确”
Material.cpp
#include "materials.h"
#include "ui_materials.h"
#include <QDebug>
#include <QMessageBox>
Materials::Materials(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Materials)
{
ui->setupUi(this);
// QObject ::connect(ui->lneditSearch,SIGNAL(textChanged(const QString &)),this,SLOT(displaySearch()));
}
Materials::~Materials()
{
delete ui;
}
void Materials::on_actionFiction_section_triggered()
{
/* this->hide();
fiction = new FictionSection();
fiction->show();*/
this->hide();
fic = new FictionSection();
fic->show();
}
#include "materials.h"
#include "ui_materials.h"
#include "fictionsection.h"
#include <QDebug>
#include <QMessageBox>
Materials::Materials(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Materials)
{
ui->setupUi(this);
// QObject ::connect(ui->lneditSearch,SIGNAL(textChanged(const QString &)),this,SLOT(displaySearch()));
}
void Materials::on_actionFiction_section_triggered()
{
this->hide();
fiction = new FictionSection();
fiction->show();
}
#包括“materials.h”
#包括“ui_materials.h”
#包括“第.h节”
#包括
#包括
材质::材质(QWidget*父项):
QMainWindow(父级),
ui(新ui::材质)
{
用户界面->设置用户界面(此);
//连接(ui->lneditSearch,信号(textChanged(constqstring&)),这个,插槽(displaySearch());
}
作废材料::在行动小说部分触发()
{
这个->隐藏();
虚构=新虚构部分();
小说->表演();
}
如何解决这个问题?您有一个循环依赖关系:
materials.h
包括virtualSection.h
和virtualSection.h
包括materials.h
因为您的头文件具有防止多次包含的例程(#ifndef\u H
和#ifndef MATERIALS\u H
,这些都很好),当material.h
包含frantiveSection.h
时,这一个再次包含material.h
,但由于您的多重包含保护,这绝对没有效果…结果是frantiveSection.h
最终没有得到Materials
声明,并且拒绝声明frantiveSectionn
从中派生
您需要使用转发声明来解决以下问题:
在materials.h
中,替换:
#include "fictionsection.h"
借
并添加#仅在materials.cpp
中包含“虚构部分.h”
转发声明是解决此问题的常见做法。但是,即使没有出现此问题,转发声明仍然是一种良好的做法,因为它将加快编译速度。您有一个循环依赖项:
materials.h
包括virtualSection.h
和virtualSection.h
包括m材料.h
因为您的头文件具有防止多次包含的例程(#ifndef\u H
和#ifndef MATERIALS\u H
,这些都很好),当material.h
包含frantiveSection.h
时,这一个再次包含material.h
,但由于您的多重包含保护,这绝对没有效果…结果是frantiveSection.h
最终没有得到Materials
声明,并且拒绝声明frantiveSectionn
从中派生
您需要使用转发声明来解决以下问题:
在materials.h
中,替换:
#include "fictionsection.h"
借
并添加#仅在materials.cpp
中包含“虚构部分.h”
转发声明是解决此问题的常见做法。但是,即使没有出现此问题,转发声明仍然是一种很好的做法,因为它将加快编译速度。至少告诉我们发生此错误的行,至少告诉我们发生此错误的行,命名空间不需要以分号结尾。循环依赖性是问题所在。感谢您提供答案。但当我这样做时,它给出了一个错误“会员‘秀’请求不明确”。请帮助我解决此问题。我的帖子回答了您的原始问题,请接受它,并为这一不明确的‘秀’发布不同的问题。这肯定是一个不同的问题,很难在评论中解释。请将链接作为评论发布在此处,以通知我,我可以在发布时回答这个新问题。命名空间不需要以分号结尾。循环依赖性是问题所在。感谢您提供答案。但当我这样做时,它给出了一个答案