2017-12-13 6 views
0

두 클래스가 있습니다. 하나는 "OrganisationRecord"이고 다른 하나는 "PayrollProcessing"입니다. "OrganisationRecord"에는 직원의 이름 직업 및 부서가 포함됩니다.어떻게 다른 데이터 유형을 가진 벡터에 입력 할 수 있습니까?

"두 번째 멤버 함수는"PayrollProcessing "입니다. 에 대한 "loadOrganisationRecords"와 "displayEmployeeOfSalaryGTE"코드는 다음과 같습니다

void PayrollProcessing::loadOrganisationRecords(string filename) 
{ 
    inputfile.open(ORGANISATIONALRECORDSFILE); 

    if (!inputfile) 
    { 
     cout << "the organisation records file does not exist!" << endl; 
     return; 
    } 
     OrganisationRecord _organisationrecord; 
     int employeenumber; 

     while (inputfile >> employeenumber) 
     { 
      inputfile.ignore(); 
      getline(inputfile, _organisationrecord.name); 
      getline(inputfile, _organisationrecord.occupation); 
      getline(inputfile, _organisationrecord.department); 

      OrganisationRecords.push_back(_organisationrecord); 
     } 

     inputfile.close(); 
} 

void PayrollProcessing::displayEmployeeOfSalaryGTE(double salary) 
    { 
     unsigned int count; 
     salary = SALARY; 

     if (salary < 0) 
     { 
      cout << "no record match this criteria!" << endl; 
      return; 
     } 
     for (count = 0; count < PayrollRecords.size(); count++) 
     { 
      if (PayrollRecords[count].salary >= salary) 
      { 
       cout << "=============================================" << endl; 
       cout << "Employeenumber: " << endl << endl; 
       cout << "Name: " << OrganisationRecords[count].name << endl; 
       cout << "Adress: " << HRRecords[count].address << endl; 
       cout << "Department: " << OrganisationRecords[count].department << endl; 
       cout << "Salary: " << PayrollRecords[count].salary << endl; 
       cout << "=============================================" << endl; 
       cout << OrganisationRecords.size(); 
      } 
     } 

     return; 
    } 

이 어떻게 암시 "displayEmployeeOfSalaryGTE"에 표시 직원 번호를 사용할 수 있습니다.

+0

당신은 더 구체적 수 : 그래서 간단하게 예를 들어, 당신은 displayEmployeeOfSalaryGTE()에 접근이있을 것이다, 당신의 OrganisationRecord 클래스에 그 값에 대한 필드를 추가? –

+0

또한 'PayrollRecords'는 ​​어디에 정의되어 있습니까? 이 코드가 컴파일됩니까? –

+0

기본적으로 직원 번호를 조직 레코드 벡터에 저장하려고합니다 –

답변

0

귀하의 독서 코드에 따르면 마다 조직 기록에 직원 번호가 있습니다.

class OrganisationRecord 
{ 
public: 
    int employeeNumber; // <-- add this 
    ... 
}; 

... 

void PayrollProcessing::loadOrganisationRecords(string filename) 
{ 
    ... 

    int employeeNumber; 
    OrganisationRecord _organisationrecord; 

    while (inputfile >> employeeNumber) 
    { 
     inputfile.ignore(); 
     _organisationrecord.employeeNumber = employeeNumber // <-- add this 
     ... 
    } 

    ... 
} 

... 

cout << "EmployeeNumber: " << OrganisationRecords[count].employeeNumber << endl; 
+0

거기에 클래스를 수정하지 않고 그것을 할 수있는 방법은 무엇입니까? –

+0

@EnsaTouray : 아니요, * 특히 * 코드가 조직 레코드마다 다른 직원 번호를 허용하기 때문입니다. 따라서 번호를 어딘가에 저장해야하며 나머지 조직 세부 정보와 동일한 클래스에 있어야합니다. –

+0

조직 레코드 벡터 안에 다른 조직 레코드와 함께 번호를 저장하여 필요할 때 암시 적으로 액세스 할 수 있다면 어떨까요? 기본적으로 나는 클래스 중 하나를 수정할 수 없습니다. –