如何放入addStaff数组(const Staff&)

时间:2012-02-11 23:17:26

标签: c++ arrays oop constructor

我不明白如何实现以下代码以允许函数写入现有数组。

void Project::addStaff(const Staff&)
{
  //add employees into staff array
}
将(const Staff&)作为参数对我来说是新的,因为它无论如何都不会创建对象。我无法更改它,因为它将被用于正确实现程序。 Staff构造函数如下

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

有没有办法为员工编写变量,以便我可以访问所需的值以放入数组中?任何帮助将不胜感激!

2 个答案:

答案 0 :(得分: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 :(得分: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对于这门课来说会更好。