To wskaźnik, więc zamiast tego spróbuj:
a->f();
Zasadniczo operator .
(używany do uzyskiwania dostępu do pól i metod obiektu) jest używany na obiektach i referencjach, więc:
A a;
a.f();
A& ref = a;
ref.f();
Jeśli masz typ wskaźnika, musisz najpierw wyłuskać go, aby uzyskać odniesienie:
A* ptr = new A();
(*ptr).f();
ptr->f();
a->b
Notacja jest zazwyczaj tylko skrótem (*a).b
.
Uwaga na temat inteligentnych wskaźników
operator->
Może być przeciążona, który jest przede wszystkim używany przez inteligentne kursory. Kiedy używasz inteligentnych wskaźników , używasz również ->
w odniesieniu do wskazanego obiektu:
auto ptr = make_unique<A>();
ptr->f();