我见过有同样问题的人,但解决方案对我不起作用,或者我误解了它。我的班级员工继承自我的班级客户,因为员工可以是客户,但他们有等级,用户名和密码。当我继承它告诉我无效使用不完整类型。但我已经尝试过解决方案,在我的派生类(员工)中我#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
答案 0 :(得分:1)
如果编译器不需要了解类型的大小或布局,则只能使用类型的前向声明。如果您具有指向前向声明类型的指针或引用,则会出现这种情况。如果您想要从类型实例化或继承,则不是这种情况。