나는 내 머리를 감쌀 수 없다. std::shared_ptr
에 대한 ->
연산자는 멤버에 대한 포인터 (클래스의 인스턴스라고 가정합니다) 만 반환하지만 동시에 메서드를 호출하는 데 사용할 수 있습니다 ... 어떻게? 우리는 ->
연산자에 의해 반환 된 포인터에 대해 아무 것도하지 않습니다. 메서드를 호출하고 인스턴스 변수에 액세스하는 방법은 무엇입니까? 나는 (그래 나는 get()
방법이 relise 않음) std::shared_ptr
에서나는 이해하지 못한다. -> 연산자 for std :: shared_ptr
T* Get() {
return &t;
}
등의 기능이 동일한 일을하는 경우, 왜 쓸 수 없습니다 : essentailly 무엇을
someSharedPtr.Get()SomeMethod()
즉 :
someSharedPtr->SomeMethod()
하고 있습니다 .... 혼란 스럽습니다. 포인터를 반환하면 ->->
또는 operator->()->
구문 대신 사용할 수 있습니까?
관심있는 사람을 위해'operator->'를 연결하는 [Demo] (http://coliru.stacked-crooked.com/a/42f8df8246ddcd82). – bames53
@ bames53 [Bah] (http://ideone.com/pHLXL2), 왜 '-1'에서 멈출까요? – Yakk