#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

#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
本文通过定义一个镜像类(Mirror)并使用初始化器模式创建多个相互关联的对象实例,展示了如何实现链式调用和递归测试。这些对象能够形成一个链表结构,并通过递归方法来测试链表的状态。
571

被折叠的 条评论
为什么被折叠?



