클래스 개체의 벡터가 있습니다. 함수는 무작위로 두 요소를 선택하고 그 주소를 반환합니다.요소 주소에 대한 벡터 푸시 백 효과
이제이 두 요소를 사용하여 동일한 클래스의 두 개의 새 객체를 생성하고 push_back을 사용하여 벡터에 추가하려고합니다.
두 부모 요소의 주소는 다음과 같습니다.
여기에서 문제가 없습니다. 그런 다음 첫 번째 자식 객체가 생성되고 vector_pushback을 사용하여 벡터의 끝에 추가합니다. 문제는 push_back 명령을 실행 한 후에 상위 개체의 주소가 변경되는 것입니다. 다음은 push_back 이후의 디버거 상태입니다.
알다시피 주소는 동일하지만 push_back 이후 가비지 값을 가리키는 것처럼 보입니다. 필자의 이해를 돕기 위해 push_back은 벡터 끝에 요소를 추가합니다. 따라서 나는 두 요소의 주소가 전혀 변하지 않을 것으로 기대한다.
무엇이 잘못 되었나요?
TL; DR, +1 어쨌든 –
와우, +2 버튼이 있었으면합니다. –