#include <iostream>

struct abc{
   int n;
};
struct A{
   abc v;
   abc* FuncP(){return &v;}
   abc& FuncR(){return v;}
};

int main(){
   A a;
   abc* p1 = a.FuncP();
   abc& r1 = *a.FuncP();
   
   abc& r2 = a.FuncR();
   abc* p2 = &a.FuncR();
   
   p1->n = 10;
   std::cout << p1->n <<","<< r1.n <<","<< p2->n <<","<< r2.n << std::endl;
   
   return 0;
}