저는 C ++ 초보자이고 전화 번호부를 시뮬레이션하는 프로그램을 작업 중입니다. 이제 삽입 작업의 경우 함수는 다음과 같이 정의됩니다.
void PhoneBook::insert(const string& name, const string& number)
그러나 참조 기호를 제거하면 여전히 작동하고 접점도 삽입됩니다. 그래서 여기서 약간 혼란 스럽습니다. 왜 필요한가요?
void PhoneBook::insert(const string name, const string number)
void PhoneBook::insert(const string name, const string number)
여기에서는 모든 데이터의 복사본으로 새 문자열을 구성합니다. 이것은 무거운 작업입니다.
void PhoneBook::insert(const string& name, const string& number)
여기에서 문자열 (문자열 주소)에 대한 참조를 전달합니다. 그 크기는 일반적으로 플랫폼에 따라 4 바이트 또는 8 바이트이며 매우 가벼운 작업입니다.
또한 참조를 전달하면 함수에 전달되는 객체와 상호 작용할 수 있습니다.
경험 법칙-변수가 8 바이트보다 크고 객체의 명시 적 복사본이 필요하지 않은 경우 항상 const 참조로 전달합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다