operator-> zwracana wartość inteligentnych wskaźników [duplikat]
To pytanie ma już tutaj odpowiedź:
-> użycie w inteligentnych wskaźnikach 2 odpowiedziinteligentne wskaźniki, takie jak shared_ptr, mogą być używane jak zwykłe wskaźniki*
i->
operator. Książki to mówią->
operator zwraca wskaźnik przechowywany przez shared_ptr. Możesz więc użyć go do uzyskania dostępu do obiektu, na który wskazuje ten wskaźnik. Ale jestem tutaj zdezorientowany. Spójrz na poniższy kod.
class A
{
public:
A(int v = 20){val = v;}
int val;
}
A* p1 = new A;
std::cout<<p1->val; //This is common sense
boost::shared_ptr<A> p2(new A);
std::cout<<p2->val; //This is right
//My question is that p2-> returns the pointers of the object, then maybe another
//-> should be used?
//like (p2->)->val?