C ++ 참조를 사용하는 이유는 무엇입니까?

Yazgan

저는 C ++ 초보자이고 전화 번호부를 시뮬레이션하는 프로그램을 작업 중입니다. 이제 삽입 작업의 경우 함수는 다음과 같이 정의됩니다.

void PhoneBook::insert(const string& name, const string& number)

그러나 참조 기호를 제거하면 여전히 작동하고 접점도 삽입됩니다. 그래서 여기서 약간 혼란 스럽습니다. 왜 필요한가요?

void PhoneBook::insert(const string name, const string number)
Starl1ght

void PhoneBook::insert(const string name, const string number)

여기에서는 모든 데이터의 복사본으로 새 문자열을 구성합니다. 이것은 무거운 작업입니다.

void PhoneBook::insert(const string& name, const string& number)

여기에서 문자열 (문자열 주소)에 대한 참조를 전달합니다. 그 크기는 일반적으로 플랫폼에 따라 4 바이트 또는 8 바이트이며 매우 가벼운 작업입니다.

또한 참조를 전달하면 함수에 전달되는 객체와 상호 작용할 수 있습니다.

경험 법칙-변수가 8 바이트보다 크고 객체의 명시 적 복사본이 필요하지 않은 경우 항상 const 참조로 전달합니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C #에서 인터페이스 참조 변수를 사용하는 실제 사용은 무엇입니까?

분류에서Dev

이 C ++ 프로그램이 참조 segfault로 람다 인수를 캡처하는 이유는 무엇입니까?

분류에서Dev

C ++ 컴파일러가 사용하지 않는 참조 변수를 최적화하지 않는 이유는 무엇입니까?

분류에서Dev

C # 목록이 변수에 대한 참조를 추가하는 이유는 무엇입니까?

분류에서Dev

C ++에서 for 루프를 사용하여 rvalue를 비 const 참조에 바인딩 할 수있는 이유는 무엇입니까?

분류에서Dev

C #에서 정적 멤버를 사용하는 이유는 무엇입니까?

분류에서Dev

C ++에서 수학 연산에 참조 / 포인터를 사용하는 방법은 무엇입니까?

분류에서Dev

& var = var 유형 이외의 C ++에서 참조를 선언하는 몇 가지 방법은 무엇입니까?

분류에서Dev

null 개체 참조를받는 이유는 무엇입니까?

분류에서Dev

C ++에서 반복자를 참조로 가져올 수없는 이유는 무엇입니까?

분류에서Dev

변수를 참조하는 경우 return ($ var)을 사용하지 않는 이유는 무엇입니까?

분류에서Dev

멤버 참조가 C ++에없는 이유는 무엇입니까?

분류에서Dev

C ++에서 assert를 사용하는 대신 if 문을 사용할 수없는 이유는 무엇입니까?

분류에서Dev

git이 참조를 사용하여 파일을 커밋하는 이유는 무엇입니까?

분류에서Dev

참조를 "공유"라고하는 이유는 무엇입니까?

분류에서Dev

이것이 전역 개체를 참조하는 이유는 무엇입니까?

분류에서Dev

이것이 전역 개체를 참조하는 이유는 무엇입니까?

분류에서Dev

C #의 십진수가 이진 정수 유효 숫자를 사용하는 이유는 무엇입니까?

분류에서Dev

C ++에서 유형이 아닌 매개 변수를 사용하는 이유는 무엇입니까?

분류에서Dev

C ++에서 bind ()를 조건 자로 사용하는 이유와 방법은 무엇입니까?

분류에서Dev

여기 for 루프에서 가변 참조를 사용해야하는 이유는 무엇입니까?

분류에서Dev

rvalue 참조와 값으로 std :: initializer_list를 사용하는 이유는 무엇입니까?

분류에서Dev

C ++ 유형을 참조하는 qml 문서를 미리 보는 방법은 무엇입니까?

분류에서Dev

c.vim이 HTML 용 .vimrc를 대체하는 이유는 무엇입니까?

분류에서Dev

C #에서 "?"를 반환하는 이유는 무엇입니까?

분류에서Dev

이 경우 C #이 동일한 메모리 주소를 사용하는 이유는 무엇입니까?

분류에서Dev

C # 사전을 사용하여 다른 사전을 참조하는 방법은 무엇입니까?

분류에서Dev

HTTP 동사를 사용하는 이유는 무엇입니까?

분류에서Dev

JS가 참조로 객체를 푸시하는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    C #에서 인터페이스 참조 변수를 사용하는 실제 사용은 무엇입니까?

  2. 2

    이 C ++ 프로그램이 참조 segfault로 람다 인수를 캡처하는 이유는 무엇입니까?

  3. 3

    C ++ 컴파일러가 사용하지 않는 참조 변수를 최적화하지 않는 이유는 무엇입니까?

  4. 4

    C # 목록이 변수에 대한 참조를 추가하는 이유는 무엇입니까?

  5. 5

    C ++에서 for 루프를 사용하여 rvalue를 비 const 참조에 바인딩 할 수있는 이유는 무엇입니까?

  6. 6

    C #에서 정적 멤버를 사용하는 이유는 무엇입니까?

  7. 7

    C ++에서 수학 연산에 참조 / 포인터를 사용하는 방법은 무엇입니까?

  8. 8

    & var = var 유형 이외의 C ++에서 참조를 선언하는 몇 가지 방법은 무엇입니까?

  9. 9

    null 개체 참조를받는 이유는 무엇입니까?

  10. 10

    C ++에서 반복자를 참조로 가져올 수없는 이유는 무엇입니까?

  11. 11

    변수를 참조하는 경우 return ($ var)을 사용하지 않는 이유는 무엇입니까?

  12. 12

    멤버 참조가 C ++에없는 이유는 무엇입니까?

  13. 13

    C ++에서 assert를 사용하는 대신 if 문을 사용할 수없는 이유는 무엇입니까?

  14. 14

    git이 참조를 사용하여 파일을 커밋하는 이유는 무엇입니까?

  15. 15

    참조를 "공유"라고하는 이유는 무엇입니까?

  16. 16

    이것이 전역 개체를 참조하는 이유는 무엇입니까?

  17. 17

    이것이 전역 개체를 참조하는 이유는 무엇입니까?

  18. 18

    C #의 십진수가 이진 정수 유효 숫자를 사용하는 이유는 무엇입니까?

  19. 19

    C ++에서 유형이 아닌 매개 변수를 사용하는 이유는 무엇입니까?

  20. 20

    C ++에서 bind ()를 조건 자로 사용하는 이유와 방법은 무엇입니까?

  21. 21

    여기 for 루프에서 가변 참조를 사용해야하는 이유는 무엇입니까?

  22. 22

    rvalue 참조와 값으로 std :: initializer_list를 사용하는 이유는 무엇입니까?

  23. 23

    C ++ 유형을 참조하는 qml 문서를 미리 보는 방법은 무엇입니까?

  24. 24

    c.vim이 HTML 용 .vimrc를 대체하는 이유는 무엇입니까?

  25. 25

    C #에서 "?"를 반환하는 이유는 무엇입니까?

  26. 26

    이 경우 C #이 동일한 메모리 주소를 사용하는 이유는 무엇입니까?

  27. 27

    C # 사전을 사용하여 다른 사전을 참조하는 방법은 무엇입니까?

  28. 28

    HTTP 동사를 사용하는 이유는 무엇입니까?

  29. 29

    JS가 참조로 객체를 푸시하는 이유는 무엇입니까?

뜨겁다태그

보관