From b1e863bf2ae274da155446a8bb4aec5f975a86c5 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Thu, 25 Sep 2014 19:13:56 +0200 Subject: Increased tree constness and added constructor aliases * as with all Node classes the public member methods of the "Tree" class do not need to be non-const * both constructors are more easily expressed as aliases of a single constructor that takes both the term and a pointer to a constant map instance * the tree is now constructed during member initialization --- src/tree.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/tree.h') diff --git a/src/tree.h b/src/tree.h index 9dfc4a3..186f162 100644 --- a/src/tree.h +++ b/src/tree.h @@ -11,21 +11,22 @@ namespace SimpleParser { class Tree { public: - explicit Tree(std::string); - Tree(std::string, const ConstantMap*); + Tree(const std::string&, const ConstantMap*); + explicit Tree(const std::string&); - double solve(); - std::string print(); + double solve() const; + std::string print() const; private: template Node* addNode(Node**, Args&&... args); Node* buildTree(std::string); - std::string term_; - Node* root_node_; - std::vector> node_collection_; + const std::string term_; const ConstantMap* constants_; + + std::vector> node_collection_; + Node* const root_node_; }; } -- cgit v1.2.3