그래서 나는 내가 작성한 코드를보고 내 자신의 사업에 관심이 있었고, 내가 한 일을 알아 차렸다. float& px = A->p.x
보호 된 데이터에 대한 참조를 만들었습니다. if 문의 너비를 줄이고 더 읽기 쉽게하기 위해이 작업을 수행했습니다. 이 기능은 물론 클래스의 친구로 명시되어있어 보호 된 데이터에 액세스 할 수 있습니다. 또한, 4 개의 유사한 참조가있었습니다.로컬에서 액세스 할 수있는 데이터의 참조에 대한 유효한 이유는 무엇입니까?
이것이 유효한 이유인지 궁금합니다. 하지 함수에 대한 매개 변수에서 근무하고 어떠한 방식에 대한 참조를 만들 수있는 타당한 이유가있는 경우
예 :.
void generic_function(A_class* A)
{
float& x = A->x;
//purposeful and valid code using x?
}
내가 질문 최선 내가 할 수있는 말을했는데, I 부탁하는 나의 목적을 전달하지 않으면 사과드립니다.
편집 : 중요 시점. 실시간 응용 프로그램 디자인을위한 최적화에 관심이 있습니다.
당신이 "유효"무엇을 의미합니까 실제로 유효한 코드를 만들어? "좋은 생각"또는 "잘 정의 된 행동을하는 법적"을 의미합니까? 둘 다 그렇습니다. –
그렇게하는 것이 합당한 이유입니다. 그래서 나는 "좋은 생각"유형의 이유를 추측합니다. 실시간 응용 프로그램을 프로그래밍 할 때 주로 최적화가 걱정됩니다. –
나는 클래스 생성자에서 포인터를 전달한 다음 값을 참조로 저장하는 것을 좋아한다. 그렇게하면 호출자는 객체가 새 객체의 수명 동안 유효해야하지만 사용하기가 더 편리 할 필요가 있음을 분명히 알 수 있습니다. – user1520427