이것은 호출 객체에 대한 포인터입니다 (r- 값을 반환 함).& ** 정확히 무엇을 반환합니까?
* this는 호출 객체의 포인터에 대한 포인터입니다 (주소 값을 반환 함).
** this는 호출 객체 (???)의 포인터 포인터에 대한 포인터입니다.
& *** 이것은 호출 객체 (???)의 포인터 포인터 포인터에 대한 참조입니다.
std::vector<int>:: iterator i = vector1.begin();
i는 자체 r 값 (자체 값 반환)에 대한 포인터입니다.
* i는 벡터에 포함 된 객체의 r 값을 가리키는 포인터입니다 (& 값이 가리키는 값을 반환).
** i는 벡터 (???)에 포함 된 개체의 r 값 포인터에 대한 포인터입니다.
나는 정말로 혼란 스럽다.
class _Iter
{
private:
ListElem *pCurr;
const List *pList;
public:
_Iter(ListElem *pCurr, const List *list)
: pCurr_(pCurr), pList(list)
{}
T& operator*() { return pCurr_->data; }
T* operator->() { return &**this; }
};
호출자는'& pCurr-> data'를 얻습니다. –
'*'는 선언문이나 실행 문에 따라 정확히 뒤에서 작동한다는 것을 기억해야합니다. –
"이것은 호출 객체에 대한 포인터입니다 (r- 값을 반환합니다)"명명 된 변수는 r- 값일 수 없습니다 –