첫 번째 매개 변수로 개체에 대한 포인터와 같은 형식의 개체에 대한 포인터에 대한 참조를 포함하는 벡터에 대한 참조를 사용하는 메서드가 있습니다. 두 번째 매개 변수로 이 메소드 내에서 두 번째 인수가 참조하는 위치를 벡터 내의 객체로 변경하려고합니다. 그런 다음 변경된 포인터를 메서드의 호출자가 사용하게하고 새 위치를 대상으로 사용합니다. 그러나이 구현에 내 현재 시도가 실패하고 있습니다.C++에서 포인터 위치를 다른 포인터의 위치로 설정할 수 없습니다.
문제에있어서 나는 실패 값이 가리키는 설정 시도한 방법
void execute(std::vector<CanvasElement*>& elements,CanvasElement*& lastFocused)
예에 lastFocused의 :
lastFocused = elements[0];
*lastFocused = *elements[0];
아래의 댓글에 답글 달기의 정교화 : 실패는 함수 내의 변경 사항이 해당 함수의 범위를 벗어나면 반영되지 않는다는 것입니다.
응용 프로그램의 런타임 중에 각 포인터에 저장된 주소를 인쇄하여 값이 실제로 실행 중에 설정되지만 실행 외부에서는 변경되지 않았 음을 확인할 수 있습니다. lastFocused = elements[0];
가 여기에 작동해야
첫 번째가 올바르게 보입니다. –
컴파일러 오류가 발생했거나 포인터가 변경되어 함수가 외부에 반영되지 않았습니까? 즉, 무엇이 실패하고 있는지 자세히 설명해 줄 수 있습니까? – Naveen
나는 정교를 추가했습니다. – XBigTK13X