[C++] 상수 레퍼런스

KWANHO PARK·2025년 3월 18일

CPP

목록 보기
3/24
/*
	상수 레퍼런스 : 상수도 참조 가능
*/
#include <iostream>
using namespace std;

int main()
{
	int n = 10;
	//int& ref = n;
	//int& ref = 10;	// 안됨
	const int& ref = 10;	// 상수 레퍼런스로 선언하면 리터럴도 참조 가능.
							// 임시 객체를 저장할 수 있는 공간이 생성됨

	cout << "ref: " << ref << endl;
	return 0;
}

/*
	ÀÏ¹Ý º¯¼ö¸¦ Ãâ·Â
*/
#include <iostream>

int func(int anum)
{
	anum++;
	return anum;
}

int& func1(int& anum)
{
	anum++;
	return anum;
}

int main()
{
	int num = 10;
	const int& res = func(num); 
	int& res1 = func1(num);
	std::cout << res << std::endl;
	std::cout << res1 << std::endl;
	return 0;
}

/*
	레퍼런스를 출력
*/
#include <iostream>

int& func(int& ref) {
	ref++;
	return ref;		// lvalue라서 가능
	//return ref++;	// rvalue는 참조 불가
}

int&& func1(int& ref) {	// && : rvalue 참조
	ref++;
	//return ref;
	return ref++;
}

int main()
{
	int n = 10;
	int& ref = func(n);
	//int ref = func(n);	// 일반 변수로 받는 것도 가능
	std::cout << ref << std::endl;
	return 0;
}

0개의 댓글