[PPL-devel] [GIT] ppl/ppl(pip): Made use of virtual methods in PIP_Tree_Node::clone().
François Galea
francois.galea at uvsq.fr
Fri Nov 13 17:23:56 CET 2009
Module: ppl/ppl
Branch: pip
Commit: da5f1817645d61f8b0f89d474d4006f8d244e1c2
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=da5f1817645d61f8b0f89d474d4006f8d244e1c2
Author: François Galea <francois.galea at uvsq.fr>
Date: Tue Nov 10 16:07:17 2009 +0100
Made use of virtual methods in PIP_Tree_Node::clone().
---
src/PIP_Tree.cc | 13 +------------
src/PIP_Tree.defs.hh | 6 +++---
2 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/src/PIP_Tree.cc b/src/PIP_Tree.cc
index 24cc78b..cd985bf 100644
--- a/src/PIP_Tree.cc
+++ b/src/PIP_Tree.cc
@@ -624,22 +624,11 @@ PIP_Tree_Node::ascii_load(std::istream& s) {
}
PIP_Tree_Node*
-PIP_Tree_Node::clone() const {
- const PIP_Solution_Node* as_s = as_solution();
- if (as_s != 0)
- return as_s->clone();
- const PIP_Decision_Node* as_d = as_decision();
- if (as_d != 0)
- return as_d->clone();
- return 0;
-}
-
-PIP_Solution_Node*
PIP_Solution_Node::clone() const {
return new PIP_Solution_Node(*this);
}
-PIP_Decision_Node*
+PIP_Tree_Node*
PIP_Decision_Node::clone() const {
return new PIP_Decision_Node(*this);
}
diff --git a/src/PIP_Tree.defs.hh b/src/PIP_Tree.defs.hh
index 5711c8f..f0b4046 100644
--- a/src/PIP_Tree.defs.hh
+++ b/src/PIP_Tree.defs.hh
@@ -132,7 +132,7 @@ public:
bool ascii_load(std::istream& s);
//! Returns a pointer to a dynamically-allocated copy of \p *this.
- PIP_Tree_Node* clone() const;
+ virtual PIP_Tree_Node* clone() const = 0;
protected:
//! Default constructor.
@@ -245,7 +245,7 @@ public:
bool ascii_load(std::istream& s);
//! Returns a pointer to a dynamically-allocated copy of \p *this.
- PIP_Solution_Node* clone() const;
+ virtual PIP_Tree_Node* clone() const;
bool OK() const;
@@ -475,7 +475,7 @@ public:
PIP_Tree_Node* child_node(bool v);
//! Returns a pointer to a dynamically-allocated copy of \p *this.
- PIP_Decision_Node* clone() const;
+ virtual PIP_Tree_Node* clone() const;
bool OK() const;
More information about the PPL-devel
mailing list