C++ 참조자와 함수

‍정진철·2022년 9월 2일
0

C++

목록 보기
2/18

참조: 윤성우의 열혈 c++

1) 참조자를 이용한 Call-by-reference

  • val1 의 또 다른 이름이 ref1, val2의 또 다른 이름이 ref2가 되는것.
  • 실제로 많이 사용되지는 않음
  • pointer를 활용한 call-by-reference가 훨씬 더 많이 사용됨.



2) const 참조자

  • 성능의 효율성을 위해 참조자 선언.
  • 하지만 해당 함수에서 참조자의 값을 무작위로 변경 가능성 있음.
  • 따라서 'const'를 붙여 해당 참조자의 값을 변경시키지 못하게함.
함수 정의 형태 : void Happyfunc(int &ref) { .... }\
함수 호출 형태: int num = 24; Happyfunc(num);

void Happyfunc(const int &ref) {....}

3) const의 참조자의 또 다른 특징

불가능한 const 참조

  • 앞에서 const로 소환한 변수는 추후에 참조자로 받지 못함.
  • const로 받는다는것은 값을 변경치 못하게 함을 의미하기 때문.
    const int num = 10;
    int &ref = num1
    ref +=10;
    cout << num <<endl;

가능한 const 참조

const int num = 10;
const int &ref = num;
const int &ref = 50;

궁금증 : const는 값을 변경하지 못하게 한다는데 const int &ref = 50;
와 같이 상수값은 어떻게 const 참조자로 받을 수 있는거지?

답변: 상수를 const 참조자로 참조할 경우 상수를 메모리 공간에 임시적으로 저장하기 떄문이다 . 따라서 행이 바뀌어도 값이 사라지지 않는다.

따라서 다음과 같은 함수가 가능.

  • 원래 같으면 참조자는 변수만 받을 수 있지만 const 참조자가 됨으로써 상수를 받을 수 있음으로 다음과 같은 덧셈이 가능해진다.

    
    int Adder(const int &num1, const int &num2) 
    {
    	return num1 + num2 ;
    
    }

profile
WILL is ALL

0개의 댓글