오늘 본 재 미 있 는 면접 문제: return * this 와 return this 는 어떤 차이 가 있 습 니까?
나 에 게 return * this 는 현재 대상 을 되 돌려 주 고 return this 는 현재 대상 의 주 소 를 되 돌려 줍 니 다 (현재 대상 을 가리 키 는 지침).정 답 은 return * this 는 현재 대상 의 클론 이나 그 자 체 를 되 돌려 줍 니 다.return this 는 현재 대상 의 주소 (현재 대상 을 가리 키 는 지침) 를 되 돌려 줍 니 다. 다음은 프로그램 을 보 겠 습 니 다.
#include
using namespace std;
class A
{
public:
int x;
A* get()
{
return this;
}
};
int main()
{
A a;
a.x = 4;
if(&a == a.get())
{
cout << "yes" << endl;
}
else
{
cout << "no" << endl;
}
return 0;
}
결 과 는 yes 다시 보기:
#include
using namespace std;
class A
{
public:
int x;
A* get()
{
return this;
}
};
int main()
{
A a;
a.x = 4;
if(&a == a.get())
{
cout << "yes" << endl;
}
else
{
cout << "no" << endl;
}
return 0;
}
결 과 는 4 no 마지막 으로 반환 유형 이 A & 라면 return * this 는 현재 대상 자체 (즉 참조) 를 되 돌려 줍 니 다. 복사 본 이 아 닙 니 다.