2012-02-11 91 views
0

我不明白如何實現以下代碼以允許函數寫入現有數組。如何將數組放入addStaff(const Staff&)

void Project::addStaff(const Staff&) 
{ 
    //add employees into staff array 
} 

有(const的工作人員&)作爲參數是新的給我,因爲它不反正創建一個對象。我無法改變它,因爲它被用作正確地實現程序。工作人員構造函數如下

Staff::Staff (std::string lname, std::string fname) 
    : theLname(lname), theFname(fname) 
    {} 

是否有寫變量的工作人員,所以我可以訪問所需要的值放入數組的方法嗎?任何幫助將不勝感激!

回答

1

Project類可能有一個std::vector數據成員,並且可以使用vector.push_back()方法在陣列中添加新的Staff實例:

// Inside Project class: 
std::vector<Staff> m_staffPersons; 


void Project::addStaff(const Staff& newStaff) 
{ 
    // Add employees into staff array 
    m_staffPersons.push_back(newStaff); 
} 
1

我會定義std::vector<Staff>表示,因爲這Project成員的員工名單類:

class Project 
{ 
public: 
    void addStaff(const Staff&); 
    vector<Staff> employees; 
} 

然後你addStaff方法看起來是這樣的:

void Project::addStaff(const Staff& newEmployee) 
{ 
    employees.push_back(newEmployee); 
} 

但我肯定會重命名類Staff,因爲它沒有多說自己。 Employee將會是這個班更好的名字。

+2

可能它會更好地使std :: vector 數據成員私有(或受保護)。 – 2012-02-11 23:48:22

+0

也許吧。但這是傑克應該做出的決定。 – LihO 2012-02-11 23:51:03