2014-11-21 109 views
0

我用C++進行編程已經有一段時間了,我正在嘗試做一些練習題來再次熟悉語法。我正在編寫一個基類爲RetailEmployee的程序,其中包含3個派生類:SalesEmployeeWarehouseEmployeeManagerEmployee。我有我的頭頂部下面的代碼派生類中的一種:C++派生類繼承方法錯誤

// Sales Employee Class Header 
#indef SalesEmployee 
#define SalesEmployee 

#include <stdio.h> 
#include "RetailEmployee.h" 

using namespace std; 

class SalesEmployee 
{ 
public: 
    SalesEmployee(string department, float pay, int ID, string name) 
. 
. 
. 

但是,任何時候我嘗試使用的方法從基類上SalesEmployee比如我得到一個錯誤說的方法是未找到。而且,所有文件都在同一個目錄中。

有沒有人有任何建議?

+3

class SalesEmployee:public RetailEmployee {...} - 您需要從基類繼承。事實上,它只是它自己的班級。 – Chris 2014-11-21 19:03:59

+2

你的ifdef後衛不應該是'#define SalesEmployee',它應該是'#define SALES_EMPLOYEE_H'。否則,這只是要求預處理器出現問題。 – Barry 2014-11-21 19:25:49

回答

2

您還沒有指示編譯器class SalesEmployeeclass RetailEmployee的後裔。要做到這一點,你應該:

class SalesEmployee : public RetailEmployee 
{ 

} 

你還需要改變你的構造函數class SalesEmployee沿配套建設的初始化信息,以class RetailEmployee通過。比如這次在SalesEmployee.cpp實現文件:

SalesEmployee::SalesEmployee(string department, float pay, int ID, string name) : RetailEmployee(department, pay, ID, name) 
{ 
    // Whatever special initialization SalesEmployee has goes here. 
} 

我假設所有這些成員在基類實際上定義的數據,因爲他們應該是共同所有的類。