2012-02-11 1 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 데이터 멤버를 가질 수있다, 당신은 배열에 새 Staff 인스턴스를 추가 할 수 vector.push_back() 방법을 사용할 수 있습니다 :

// 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

내가이 Project의 구성원으로 직원의 목록을 나타내는 std::vector<Staff>을 정의 할 클래스 :

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 데이터 멤버를 비공개 (또는 보호)로 설정하는 것이 좋습니다. –

+0

아마도. 그러나 그것은 Jake가해야하는 결정입니다. – LihO

관련 문제