I have an instance of View class (instantiated somewhere in the Controller owning object using shared_ptr)
class ViewController {
protected:
std::shared_ptr<View> view_;
};
This view has also method "hitTest()" that should return this view's shared_ptr to the outside world
class View {
...
public:
std::shared_ptr<UIView> hitTest(cocos2d::Vec2 point, cocos2d::Event * event) {
...
};
How can I implement this method from inside the View? It should return this VC's shared_ptr to outside? Obviously, I cannot make_shared(this)
hitTest() {
...
return make_shared<View>(this);
}
because it would break completely the logic: it just would create another smart pointer from the this raw pointer (that would be totally unrelated to owner's shared_ptr) So how the view could know its external's shared_ptr and return it from inside the instance?