2

考えられるすべてのステートメントの組み合わせを試し#includeましたが、何も機能していません。基本的な継承プログラムを作成しようとしていますが、エラーが発生し続け、error: expected class-name before '}' tokenどうすればよいかわかりません。Executive クラスmain()のファイルをインクルードしようとしましたが、このエラーが表示されます。.cppプログラムには、クラスから継承された 5 種類の従業員が含まれEmployeeており、それらはすべて同じエラーであると想定しています。

#include <iostream>
#include <string>

#include "Employee.cpp"
#include "Manager.cpp"
#include "Executive.cpp"
#include "Technical.cpp"
#include "Software.cpp"
#include "Test.cpp"

using namespace std;

int main()
{
    Employee emp[3];

    Executive emp0("John", "Doe", "VP", 100000.0, 1000000.0, 2000.0);
    Software emp1("Vincent", "Giuliana", "Project Leader", 150000.0, 200000.0, 1000.0);
    Test emp2("Lauren", "Wallis", "Overseer of Testing", 95000, 115000);

    emp[0] = emp0;
    emp[1] = emp1;
    emp[2] = emp2;

    for(int i=0; i<3; i++)
        emp[i].displayInformation();

    emp0.displayInformation();
    emp1.displayInformation();
    emp2.displayInformation();

    return 0;
}

私のEmployee.hヘッダーファイルは次のとおりです。

#ifndef EMPLOYEE_H_INCLUDED
#define EMPLOYEE_H_INCLUDED

#include <string>
#include <iostream>

using namespace std;

class Employee
{
private:
    string fName, lName, jobTitle;
    double baseSalary, salary;

public:
    Employee();
    Employee(string fName, string lName, string jobTitle, double baseSalary);
    void calculateSalary(double baseSalary);
    void displayName();
    void displayBSalary();
    void displayJobTitle();
    void displayInformation();

...
getters
...

...
setters
...
};

#endif // EMPLOYEE_H_INCLUDED

Employee.cppは:

#include <string>
#include <iostream>

#include "Employee.h"

using namespace std;

Employee::Employee()
{
    fName = "";
    lName = "";
    jobTitle = "";
    baseSalary = 000000;
}

...

void Employee::setBSalary(double bs) //sets base salary as parameter
{
    baseSalary = bs;
}

Executive.hヘッダークラ​​スのトップ:

#ifndef EXECUTIVE_H_INCLUDED
#define EXECUTIVE_H_INCLUDED

#include <string>
#include <iostream>

//#include "Employee.h"

using namespace std;

class Executive : public Employee
{
private:
    string fName, lName, jobTitle;
    double baseSalary, salary, bonus, stockOption;

public:
...
};

#endif // Executive_H_INCLUDED

最後になりましたが、Executive.cppファイル... #include #include

#include "Executive.h"

using namespace std;

Executive::Executive()
{
    fName = fN;
    lName = lN;
    jobTitle = jt;
    baseSalary = bs;
    bonus = b;
    stockOption = so;
}

...

void Executive::setSO(double so) //sets stock option as parameter
{
    stockOption = so;
}

各ファイルに各ヘッダーを含めようとしたと思いますが、それでも何もありません。どんな助けでも大歓迎です、そして私は誰にでも前もって感謝します!

4

1 に答える 1

4

絶対です

#include "Employee.h"

クラスが を継承する場合、Executive.hコンパイラは の宣言を確認する必要があるためです。Employeeしたがって、からコメントを削除するだけです#include

于 2012-11-15T06:03:15.803 に答える