Re: Assignment operator=/copy constructor/temporaries, BROKEN!
I want this to be compilable and working AS IS:
class AO
{
public:
int i;
void Aha();// {i=1;}
AO &operator=(AO &x);// {i=x.i; return *this;}//should not matter if
inline or not
AO();// : i(0) {}
AO(AO &x);// {i=x.i;}
virtual ~AO();// {}
};
void AO::Aha() {
i=1;
}
AO::AO()
: i(0) {
}
AO::AO(AO &x) {
i=x.i;
}
AO &AO::operator=(AO &x) {
i=x.i;
return *this;
}
AO::~AO() {}
class BO
{
AO a;
public:
AO Retit();// {++a.i; return a;}
AO Retut();// {AO z; z.i = 10; return z;}
BO();
};
BO::BO() {
AO b;
b = a;
AO c(a);
AO d(b);
AO e(c);
a.Aha();
b.Aha();
c.Aha();
d.Aha();
e.Aha();
AO m = Retit();
AO n = Retit();
AO o(Retit());
AO p = n;
AO q = o;
AO f;
AO g = Retut();
AO h(Retut());
AO j = g;
AO k = h;
f = Retit();
f = Retut();
}
AO BO::Retit() {
++a.i;
return a;
}
AO BO::Retut() {
AO z;
z.i = 10;
return z;
}
BO testbo;
Danilo J Bonsignore