Как поместить в массив addStaff (const Staff &) - PullRequest
0 голосов
/ 12 февраля 2012

Я не понимаю, как реализовать следующий код, чтобы позволить функции записывать в существующий массив.

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 ]

1 голос
/ 12 февраля 2012

Я бы определил std::vector<Staff>, представляющий список сотрудников в качестве члена этого Project класса:

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

Тогда ваш addStaff метод мог бы выглядеть так:1009 * Но я бы определенно переименовал класс Staff, так как он мало говорит о себе.Employee было бы намного лучшим названием для этого класса.

1 голос
/ 12 февраля 2012

Ваш класс 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...