Compiler Error C2819

type 'type' does not have an overloaded member 'operator ->'

You need to define an operator->() function in order to use this pointer operation.

The following code illustrates the problem.

class A {
public:   
   int i;
};

class B {
};

void C(B j)
{
   j->i; // error C2819
}

To fix this problem, rewrite class B to define an operator->() function.

class B {
   A* pA;
   
public:
   
   A* operator->()
   {
      return pA;
   }
};