tmp
This commit is contained in:
+14
-14
@@ -5,20 +5,20 @@
|
||||
|
||||
class BaseLink : public ILink {
|
||||
public:
|
||||
explicit BaseLink(NodePtr node) : owner_node_(node) {}
|
||||
NodePtr getNode() const override { return owner_node_.lock(); }
|
||||
LinkPtr getParent() const override { return parent_.lock(); }
|
||||
void setParent(const LinkPtr& parent) override { parent_ = parent; }
|
||||
const std::vector<LinkPtr>& getChildren() const override { return children_; }
|
||||
void removeChild(const LinkPtr& child) override {
|
||||
children_.erase(std::remove(children_.begin(), children_.end(), child), children_.end());
|
||||
}
|
||||
explicit BaseLink(NodePtr node) : owner_node_(node) {}
|
||||
NodePtr getNode() const override { return owner_node_.lock(); }
|
||||
NodePtr getParent() const override { return parent_.lock(); }
|
||||
void setParent(const NodePtr& parent) override { parent_ = parent; }
|
||||
const std::vector<NodePtr>& getChildren() const override { return children_; }
|
||||
void removeChild(const NodePtr& child) override {
|
||||
children_.erase(std::remove(children_.begin(), children_.end(), child), children_.end());
|
||||
}
|
||||
|
||||
~BaseLink() override {
|
||||
std::cout << "--- Destructor called for: " << "BaseLink" << "\n";
|
||||
}
|
||||
~BaseLink() override {
|
||||
std::cout << "--- Destructor called for: " << "BaseLink" << "\n";
|
||||
}
|
||||
protected:
|
||||
std::vector<LinkPtr> children_;
|
||||
std::weak_ptr<INode> owner_node_;
|
||||
std::weak_ptr<ILink> parent_;
|
||||
std::vector<NodePtr> children_;
|
||||
std::weak_ptr<INode> owner_node_;
|
||||
std::weak_ptr<INode> parent_;
|
||||
};
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
|
||||
class LeafLink : public BaseLink {
|
||||
public:
|
||||
using BaseLink::BaseLink;
|
||||
void addChild(const LinkPtr&) override { throw std::logic_error("LeafLink cannot have children"); }
|
||||
using BaseLink::BaseLink;
|
||||
void addChild(const NodePtr&) override { throw std::logic_error("LeafLink cannot have children"); }
|
||||
};
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
|
||||
class OneToManyLink : public BaseLink {
|
||||
public:
|
||||
using BaseLink::BaseLink;
|
||||
void addChild(const LinkPtr& child) override { children_.push_back(child); }
|
||||
using BaseLink::BaseLink;
|
||||
void addChild(const NodePtr& child) override { children_.push_back(child); }
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user