0
私はこの同じ問題を抱えている人を見たことがあるが、解決策が私のために働かないか、誤解しているかもしれない前に、Incomplete TypeまたはExpected Initializerを無効にする。従業員は顧客になることができますが、ランク、ユーザー名、パスワードがあるため、クラスの従業員はクラスの顧客から継承します。私が継承すると、それは不完全なタイプの無効な使用を教えてくれます。しかし、私はすでにソリューションを試して、私の派生クラス(従業員)で#include "customer.h"またはforward宣言 "クラス顧客;"または私のemployee.hファイルの両方を行うが、それは私にこのエラーを伝えますか{ は本当にコンパイラがする必要がない場合にのみ、タイプの宣言を前方に使用することができますC++ {Token
#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
エラーメッセージをコピーして質問に貼り付けてください。 – lit
employee.h:12:エラー: '{'トークンの前に期待されるクラス名 { ^ –
'items.h'に' employee.h'が含まれていますか?その場合、 'customer'の前に' employee'を定義します –