함수에 대한 참조로 벡터를 전달하지만 변경 사항은 지속되지 않습니다.

리드

저는 C ++를 처음 사용하므로 멍청한 질문을 용서하십시오. 내 프로그램에서 "Employee"개체의 벡터를 참조로 함수에 전달합니다.이 함수는 벡터의 각 개체에 대해 Employee 멤버 함수를 호출하여 "급여"를 "r"퍼센트 (이 경우 2 %)로 올립니다. 호출을 기록하여 이것이 발생하는지 확인했지만 (급여는 함수 내에서 변경됨) 변경 사항이 지속되지 않습니다. Employee 개체를 다시 인쇄하면 급여가 변경되지 않습니다. 도움을 주셔서 감사합니다!

// main.cpp
void raiseAllBy2Percent(vector<Employee> &v)
{
for (int i = 0; i < v.size(); i++)
    {
    Employee e = v[i];
    e.salaryRaise(2);
    }
}

// Employee.cpp
void Employee::salaryRaise(double r)
{
cout << "**salaryRaise called";
_salary += (r/100 * _salary);
cout << "**new salary: " << _salary; // This logs with the change as expected
}
user529758

참조로 벡터전달 하고 있지만이 줄에서 :

Employee e = v[i];

당신이하는 복사 직원 개체를. 참조도 만드십시오.

Employee &e = v[i];

예상대로 작동합니다.

( std::vector::operator[]대부분의 표준 컨테이너의 아래 첨자 연산자가 수행하는 것처럼 자체적으로 참조를 반환 하기 때문에 작동 합니다.)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

참조로 벡터를 전달하지만 변경은 C ++를 고정하지 않습니다.

분류에서Dev

Express-Session 세션 변수에 대한 변경 사항은 경로 전체에 저장되지 않습니다.

분류에서Dev

C ++ : 참조를 매개 변수로 전달하지만 해당 함수는 참조를 매개 변수로 허용하지 않습니다.

분류에서Dev

기존 탐색 속성에 대한 모든 참조를 변경하지 않고 엔터티에 대한 다 대다 관계를 승격 할 수 있습니까?

분류에서Dev

전달 참조에 대한 매개 변수 유형 검사가 작동하지 않습니다.

분류에서Dev

벡터의 요소에 대한 가변 참조를 해당 벡터와 함께 함수의 매개 변수로 전달합니다.

분류에서Dev

벡터에 대한 참조를 매개 변수로 전달

분류에서Dev

Teamcity는 PR 변경 사항에 대해 지속적으로 빌드를 트리거하지 않습니다.

분류에서Dev

Amazon CloudFront가 변경되지 않은 정적 콘텐츠에 대해 304 (수정되지 않음)를 지속적으로 반환하지 않습니까?

분류에서Dev

함수에 전달 될 때 전혀 변경되지 않는 구조에 대한 포인터

분류에서Dev

관리자에 대한 Django 변경 사항은 서버를 다시 시작하지 않으면 템플릿에 반영되지 않습니다.

분류에서Dev

관리자에 대한 Django 변경 사항은 서버를 다시 시작하지 않으면 템플릿에 반영되지 않습니다.

분류에서Dev

C ++로 만든 Java 코드를 다시 만들려고하는데 " 'Rooms :: east'에 대한 정의되지 않은 참조"오류가 계속 발생합니다.

분류에서Dev

객체에 대한 잠금은 다른 스레드의 변경 사항에 중지되지 않습니다.

분류에서Dev

@Published 변수에 대한 @Binding이 변경되지만 화면으로 돌아 가지 않는 한 뷰를 업데이트하지 않습니다.

분류에서Dev

안전하지 않은 코드가 컴파일되지만 벡터로 푸시되는 유사한 코드가 참조가 충분히 오래 지속되지 않는다고 불평하는 이유는 무엇입니까?

분류에서Dev

AndroidStudio 및 BitBucket에 대한 커밋되지 않은 변경 사항

분류에서Dev

모범 사례는 함수 / 클래스 내에서 전역 변수를 사용하거나 함수에 대한 참조로 변수를 전달합니까?

분류에서Dev

참조에 의한 전달은 C에서 작동하지만이 코드의 경우 C ++에서는 작동하지 않습니다.

분류에서Dev

참조에 의한 전달은 C에서 작동하지만이 코드의 경우 C ++에서는 작동하지 않습니다.

분류에서Dev

종속 csx 파일에 대한 변경 사항은 앱을 다시 시작할 때까지 적용되지 않습니다.

분류에서Dev

함수에서 반환 된 벡터를 메서드에 대한 참조를 기대하는 함수로 전달할 수 없습니다.

분류에서Dev

유닛 파일에서 다른 사용자로 postgres 스크립트를 실행하려고하지만 변수가 전달되지 않습니다.

분류에서Dev

C 프로그램의 함수에 대한 정의되지 않은 참조

분류에서Dev

매개 변수로 전달 된 구조의 배열이 변경 사항을 반영하지 않습니다.

분류에서Dev

C-내 책에서 배열은 항상 참조에 의한 전달을 사용한다고 말합니다. 하지만 그에 수반되는 코드는 이해가되지 않습니다.

분류에서Dev

헤더 파일에 정의 된 구조체를 함수 매개 변수로 사용할 때 '불완전한 유형은 허용되지 않습니다'

분류에서Dev

attr ()은 익명 함수를 통해 반환하지 않는 한 속성을 변경하지 않습니다.

분류에서Dev

AngularJS : 필터 후 세부 정보 화면에 경로 매개 변수에 대한 필터링되지 않은 인덱스가 계속 표시됩니다.

Related 관련 기사

  1. 1

    참조로 벡터를 전달하지만 변경은 C ++를 고정하지 않습니다.

  2. 2

    Express-Session 세션 변수에 대한 변경 사항은 경로 전체에 저장되지 않습니다.

  3. 3

    C ++ : 참조를 매개 변수로 전달하지만 해당 함수는 참조를 매개 변수로 허용하지 않습니다.

  4. 4

    기존 탐색 속성에 대한 모든 참조를 변경하지 않고 엔터티에 대한 다 대다 관계를 승격 할 수 있습니까?

  5. 5

    전달 참조에 대한 매개 변수 유형 검사가 작동하지 않습니다.

  6. 6

    벡터의 요소에 대한 가변 참조를 해당 벡터와 함께 함수의 매개 변수로 전달합니다.

  7. 7

    벡터에 대한 참조를 매개 변수로 전달

  8. 8

    Teamcity는 PR 변경 사항에 대해 지속적으로 빌드를 트리거하지 않습니다.

  9. 9

    Amazon CloudFront가 변경되지 않은 정적 콘텐츠에 대해 304 (수정되지 않음)를 지속적으로 반환하지 않습니까?

  10. 10

    함수에 전달 될 때 전혀 변경되지 않는 구조에 대한 포인터

  11. 11

    관리자에 대한 Django 변경 사항은 서버를 다시 시작하지 않으면 템플릿에 반영되지 않습니다.

  12. 12

    관리자에 대한 Django 변경 사항은 서버를 다시 시작하지 않으면 템플릿에 반영되지 않습니다.

  13. 13

    C ++로 만든 Java 코드를 다시 만들려고하는데 " 'Rooms :: east'에 대한 정의되지 않은 참조"오류가 계속 발생합니다.

  14. 14

    객체에 대한 잠금은 다른 스레드의 변경 사항에 중지되지 않습니다.

  15. 15

    @Published 변수에 대한 @Binding이 변경되지만 화면으로 돌아 가지 않는 한 뷰를 업데이트하지 않습니다.

  16. 16

    안전하지 않은 코드가 컴파일되지만 벡터로 푸시되는 유사한 코드가 참조가 충분히 오래 지속되지 않는다고 불평하는 이유는 무엇입니까?

  17. 17

    AndroidStudio 및 BitBucket에 대한 커밋되지 않은 변경 사항

  18. 18

    모범 사례는 함수 / 클래스 내에서 전역 변수를 사용하거나 함수에 대한 참조로 변수를 전달합니까?

  19. 19

    참조에 의한 전달은 C에서 작동하지만이 코드의 경우 C ++에서는 작동하지 않습니다.

  20. 20

    참조에 의한 전달은 C에서 작동하지만이 코드의 경우 C ++에서는 작동하지 않습니다.

  21. 21

    종속 csx 파일에 대한 변경 사항은 앱을 다시 시작할 때까지 적용되지 않습니다.

  22. 22

    함수에서 반환 된 벡터를 메서드에 대한 참조를 기대하는 함수로 전달할 수 없습니다.

  23. 23

    유닛 파일에서 다른 사용자로 postgres 스크립트를 실행하려고하지만 변수가 전달되지 않습니다.

  24. 24

    C 프로그램의 함수에 대한 정의되지 않은 참조

  25. 25

    매개 변수로 전달 된 구조의 배열이 변경 사항을 반영하지 않습니다.

  26. 26

    C-내 책에서 배열은 항상 참조에 의한 전달을 사용한다고 말합니다. 하지만 그에 수반되는 코드는 이해가되지 않습니다.

  27. 27

    헤더 파일에 정의 된 구조체를 함수 매개 변수로 사용할 때 '불완전한 유형은 허용되지 않습니다'

  28. 28

    attr ()은 익명 함수를 통해 반환하지 않는 한 속성을 변경하지 않습니다.

  29. 29

    AngularJS : 필터 후 세부 정보 화면에 경로 매개 변수에 대한 필터링되지 않은 인덱스가 계속 표시됩니다.

뜨겁다태그

보관