클래스 CBase
가 있습니다.임시 오브젝트의 멤버 함수에 대한 좌변 치 참조가 매달려 참조입니까?
class CBase
{
...
CBase &Create()
{
return *this;
}
...
}
내가 좌변 참조 및 포인터를 선언하면,
CBase &kk = CBase().Create();
CBase *pp = &(CBase().Create());
이
kk
가 매달려 참조이며,
pp
는 허상 포인터입니까?
나는 kk
과 pp
이 매달려 있다고 생각합니다. CBase()
을 호출하면 의심의 여지없이 임시 객체가 만들어 지므로 미분은 CBase().Create()
이어야합니다. 그러나 Xcode (버전 6.1)에서는 경고 또는 오류 메시지를 표시하지 않습니다.
아무에게도 힌트를 주거나 C++ 11 문서에서 이러한 동작에 대해 설명 할 수 있습니까? 아니면 내가 틀렸어?
물론 컴파일시 경고/오류가 발생하지 않습니다. 'Create()'가 런타임에 호출 될 때'* this'에 대한 참조를 리턴한다는 것을 알지 못합니다. –