#include <iostream>
class ClassA
{
public:
int a;
ClassA():a(){}
ClassA& Dup1(){
return *this;
}
ClassA Dup2(){
return *this;
}
};
int main()
{
ClassA a;
const ClassA &dup1 = a.Dup1();
const ClassA &dup2 = a.Dup2();
a.a = 1;
std::cout << "a.a -> " << a.a << std::endl;
std::cout << "dup1.a -> " << dup1.a << std::endl;
std::cout << "dup2.a -> " << dup2.a << std::endl;
}