Это указатель, поэтому попробуйте:
a->f();
В основном оператор .(используемый для доступа к полям и методам объекта) используется для объектов и ссылок, поэтому:
A a;
a.f();
A& ref = a;
ref.f();
Если у вас есть тип указателя, вы должны сначала разыменовать его, чтобы получить ссылку:
A* ptr = new A();
(*ptr).f();
ptr->f();
a->bОбозначения, как правило , просто сокращение для (*a).b.
Примечание об умных указателях
operator->Может быть перегружен, который особенно используется смарт - указатели. Когда вы используете интеллектуальные указатели , вы также используете ->для ссылки на заостренный объект:
auto ptr = make_unique<A>();
ptr->f();