언어/C++

[C++] 참조자가 객체로 쓰였을 때는?

study_memo 2023. 9. 25. 01:27
int main(void)
{
	SelfRef obj(3);
	SelfRef &ref=obj.Adder(2);
	
	obj.ShowTwoNumber();
	ref.ShowTwoNumber();
	
	ref.Adder(1).ShowTwoNumber().Adder(2).ShowTwoNumber();
	return 0;
}

이러한 코드가 있을 때, ref는 객체일까? 아니면 그냥 객체가 아닌 참조자일까?

 

-> 참조자의 의미를 잘 생각해보시면 될 것 같다.

결국 참조자 &를 사용하면 한 공간에 다른 별명을 붙이게 되는 것이다.

결국 ref도 객체로 보는 것이 맞다. 참조자를 썼다고 객체와 참조자를 따로 구분짓지는 않는다.

 


(아래는 전체코드이다..)

//참고. 전체 코드
#include <iostream>
using namespace std;


class SelfRef
{
private :
	int num;
public:
	SelfRef(int n) : num(n)
	{
		cout<<"객체생성"<<endl;
	}

	SelfRef& Adder(int n)
	{
		num+=n;
		return *this;
	}
	SelfRef& ShowTwoNumber()
	{
		cout<<num<<endl;
		return *this;
	}
};

int main(void)
{
	SelfRef obj(3);
	SelfRef &ref=obj.Adder(2);
	
	obj.ShowTwoNumber();
	ref.ShowTwoNumber();
	
	ref.Adder(1).ShowTwoNumber().Adder(2).ShowTwoNumber();
	return 0;
}