[英]C++ Invalid use of Incomplete Type or Expected Initializer before { Token
我见过同样问题的人,但是解决方案对我不起作用,或者我误解了。 我的班级员工继承自班级客户,因为该员工可以是客户,但他们具有等级,用户名和密码。 当我继承时,它告诉我无效使用了不完整的类型。 但是我已经尝试过解决方案,并且在派生类(员工)中,我#include“ customer.h”或转发声明为“ class customer”; 或在我的employee.h文件中同时执行这两个操作,但是它告诉我此错误,或者在{之前确实需要帮助
#ifndef CUSTOMER_H
#define CUSTOMER_H
#include "items.h"
class items;
class employee;
namespace Ui {
class customer;
}
class customer : public QMainWindow
{
Q_OBJECT
public:
explicit customer(QWidget *parent = 0);
customer(int, QString, QString, QString, QDate, QString, QString, int, int, QString);
~customer();
//START set and get functions
void setID(int);
int getID();
void setFirstName(QString);
QString getFirstName();
void setLastName(QString);
QString getLastName();
void setGender(QString);
QString getGender();
void setDateOfBirth(QDate);
QDate getDateOfBirth();
void setStreet(QString);
QString getStreet();
void setTown(QString);
QString getTown();
void setDistrictID(int);
int getDistrictID();
void setContactNumber(int);
int getContactNumber();
void setEmail(QString);
QString getEmail();
//END set and get functions
virtual void resetFields();
protected:
Ui::customer *ui;
private slots:
void on_pushButton_AddCustomer_clicked();
void on_pushButton_Clear_clicked();
void on_pushButton_ViewAllCustomers_clicked();
void on_pushButton_AddEmployee_emp_clicked();
void on_pushButton_Clear_emp_clicked();
void on_buying_pushButton_clicked();
void on_buying_pushButton_emp_clicked();
};
#endif // CUSTOMER_H
EMPLOYEE CLASS BELOW
#ifndef EMPLOYEE_H
#define EMPLOYEE_H
#include "ui_customer.h"
#include "database.h"
#include <QMainWindow>
#include "customer.h"
class customer;
class employee : public customer
{
Q_OBJECT
public:
employee(int, QString, QString, QString, QDate, QString, QString, int, int, QString, QString, QString, QString);
void setRank(QString);
QString getRank();
void setUsername(QString);
QString getUsername();
void setPassword(QString);
QString getPassword();
virtual void resetFields();
};
#endif // EMPLOYEE_H
如果编译器不需要了解有关类型的大小或布局的任何信息,则只能使用类型的前向声明。 如果您有一个指向前向声明类型的指针或引用,就是这种情况。 如果要实例化或继承该类型,则不是这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.