C++는 실제 매개변수와 참조 매개변수가 일치하지 않을 때 임시 변수를 생성할 수 있다.
최근의 C++는 매개변수가 const 참조일 경우에만 이것을 허용한다.
이것은 새로운 제약이다. C++가 어떤 경우에 임시 변수를 생성하는지, 그리고 const 참조의
경우에만 임시 변수 생성을 허용하는 이유를 알아보자.
먽, 임시 변수는 언제 생성되는 것일까? 참조 매개변수가 const일 경우,
컴파일러는 다음과 같은 두 가지 상황에서 임시 변수를 생성한다.
// 일반 매개변수와 참조 매개변수의 예시
double cube(double a);
double refcube(double& ra);
임시 변수란?
- 실제 매개변수와 참조 매개변수간에 데이터형이 일치하지 않을 경우 생성되는 변수이다.
- const 참조 데이터형의 매개변수일 경우에만 한정하여 임시 변수를 생성한다.
- 임시 변수는 함수가 호출되어 있는 동안에만 유지되며
그 후에는 컴파일러가 마음대로 제거할 수 있게된다.
puls
Lvalue 란?
lvalue 매개변수는 참조가 가능한 데이터 객체이다.
예를 들어 변수, 배열의 원소, 구조체의 멤버, 참조 또는 역참조 포인터는 lvalue이다.
'프로그래밍 언어 > C & C++ 정리' 카테고리의 다른 글
C++ 생성자 (constructor)와 소멸자 (destructor) (0) | 2023.01.25 |
---|---|
사용자 정의 타입 (user-define data type) (0) | 2023.01.21 |
가변배열 동적할당 vector (0) | 2023.01.18 |
new 동적 할당 delete와 nullptr의 이용 (0) | 2023.01.16 |
c++ 함수 구문 (0) | 2023.01.13 |