[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