2014-11-17 237 views
-1

我正在做一個應用程序來跟蹤公司中的員工。有不同類的僱員,都從抽象類Employee繼承。我想要的是在Employee類中定義一個靜態變量,它將代表每個員工初始化後將賦予的id,然後遞增。因此,我的問題是,如何爲類Manager實現構造函數它是從Employee繼承的,而不是傳遞一個ID作爲參數,但是一旦它到達Employee類的構造函數就會被確定。C中的繼承和構造函數#

+0

你不能有一個靜態變量,它是每一個類的實例是唯一的。 –

+0

我知道,但我想將靜態變量的值傳遞給繼承自Employee的類中的新非靜態變量 – user3791178

+5

這是家庭作業,顯示對主題的理解很差,沒有示例代碼,不清楚精通。 –

回答

0
class Employee 
{ 
    static int _empCount = 0; 
    static int GetNextEmployeeId() 
    { 
     _empCount++; 
     return _empCount; 
    } 

    public int EmployeeId { get; private set; } 

    public Employee() 
    { 
     EmployeeId = GetNextEmployeeId(); 
    } 
} 
+0

好的,這比我想像的要簡單得多,謝謝 – user3791178

+0

歡迎您點贊upvote任何你認爲有用的答案... – ShayD

0

命名空間PROJECT1 {

class Employee 
{ 

    static int lastId; 

    protected int id; 

    public Employee() 
    { 
     this.id = lastId + 1; 
     lastId = this.id; 
    } 


} 

class Manager : Employee 
{ 
    public Manager() : base() { } 
} 

class Accountant : Employee 
{ 
    public Accountant() : base() { } 
} 

}

+0

你應該改正你的代碼的格式。每行前添加4個空格。刪除空行 – rtruszk