gang-of-4-patterns AT lists.siebelschool.illinois.edu
Subject: Design Patterns discussion
List archive
- From: "Atsushi Tanabe" <ttn13w30a9 AT mx1.ttcn.ne.jp>
- To: <gang-of-4-patterns AT cs.uiuc.edu>
- Subject: [gang-of-4-patterns] Re: <Composite pattern with type checking>
- Date: Mon, 27 Feb 2006 00:02:25 +0900
- List-archive: <http://lists.cs.uiuc.edu/pipermail/gang-of-4-patterns>
- List-id: Design Patterns discussion <gang-of-4-patterns.cs.uiuc.edu>
Hello.
About the Compsite Pattern, I thought of the implementation with type
checking.
A code is as follows.
In main, A leaf object is going to call an Add method, and an error occurs.
class Component {
public:
virtual void Add(Component* parent);
virtual void Remove(Component* parent);
};
void Component::Add(Component* parent){};
void Component::Remove(Component* parent){};
class Composite:public Component{
};
class NotComposite{
virtual void Add(Component* parent);
virtual void Remove(Component* parent);
};
void NotComposite::Add(Component* parent){};
void NotComposite::Remove(Component* parent){};
class Leaf:public Component, public NotComposite{
};
int main(){
Component* cmp;
Leaf* lfp;
Leaf lf;
Composite cs;
cmp = &lf;
cmp->Add(cmp);
cmp->Remove(cmp);
lfp = &lf;
lfp->Add(cmp); //compile error
lf.Add(cmp); //compile error
return 0;
}
Please tell an opinion.
Thank you.
Atsushi Tanabe(Japanese)
- [gang-of-4-patterns] Re: <Composite pattern with type checking>, Atsushi Tanabe, 02/26/2006
- RE: [gang-of-4-patterns] Re: <Composite pattern with type checking>, Jesús Alonso, 02/27/2006
- Re: [gang-of-4-patterns] Re: <Composite pattern with type checking>, Atsushi Tanabe, 02/28/2006
- Re: [gang-of-4-patterns] Re: <Composite pattern with type checking>, Ray Tayek, 02/27/2006
- RE: [gang-of-4-patterns] Re: <Composite pattern with type checking>, Jesús Alonso, 02/27/2006
Archive powered by MHonArc 2.6.16.