Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在';{';在QT c+;+; 我用QT C++实现了一个图书管理系统,我有一个材质类,是 qWin窗口>代码,当我点击菜单栏中的虚构部分时,应该打开一个 qdiaRoBOS。但是,虽然我实现了这个概念,但是我得到了一个错误,即“之前的期望类名{”。请帮助查找错误。提前感谢_C++_Qt - Fatal编程技术网

如何在';{';在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”


转发声明是解决此问题的常见做法。但是,即使没有出现此问题,转发声明仍然是一种很好的做法,因为它将加快编译速度。

至少告诉我们发生此错误的行,至少告诉我们发生此错误的行,命名空间不需要以分号结尾。循环依赖性是问题所在。感谢您提供答案。但当我这样做时,它给出了一个错误“会员‘秀’请求不明确”。请帮助我解决此问题。我的帖子回答了您的原始问题,请接受它,并为这一不明确的‘秀’发布不同的问题。这肯定是一个不同的问题,很难在评论中解释。请将链接作为评论发布在此处,以通知我,我可以在发布时回答这个新问题。命名空间不需要以分号结尾。循环依赖性是问题所在。感谢您提供答案。但当我这样做时,它给出了一个答案