#ifndef MIRROR_H
#define MIRROR_H
class Mirror ... {
Mirror *next;
bool flag;
public:
Mirror():flag(true),next(0)...{}
Mirror(Mirror *p) ...{ next = p; flag = false;}
bool test() ...{
if (next == 0)
return flag;
return next->test();
}
} ;
#endif // MIRROR_H
#define MIRROR_H
class Mirror ... {
Mirror *next;
bool flag;
public:
Mirror():flag(true),next(0)...{}
Mirror(Mirror *p) ...{ next = p; flag = false;}
bool test() ...{
if (next == 0)
return flag;
return next->test();
}
} ;
#endif // MIRROR_H
#ifndef INITIALIZER_H
#define INITIALIZER_H
#include " mirror.h "
Mirror & obj1() {
static Mirror o1;
return o1;
}
Mirror & obj2() {
static Mirror o2(obj1());
return o2;
}
Mirror & obj3() {
static Mirror o3(obj2());
return o3;
}
Mirror & obj4() {
static Mirror o4(obj3());
return o4;
}
Mirror & obj5() {
static Mirror o5(obj4());
return o5;
}
#endif // INITIALIZER_H
#define INITIALIZER_H
#include " mirror.h "
Mirror & obj1() {
static Mirror o1;
return o1;
}
Mirror & obj2() {
static Mirror o2(obj1());
return o2;
}
Mirror & obj3() {
static Mirror o3(obj2());
return o3;
}
Mirror & obj4() {
static Mirror o4(obj3());
return o4;
}
Mirror & obj5() {
static Mirror o5(obj4());
return o5;
}
#endif // INITIALIZER_H