I'd like to create a class that is associated to another class in some sort of parent-child relationship. For this the "child" class needs a reference to it's parent.
For example:
template <typename T>
class TEvent {
private: T* Owner;
public: TEvent(T* parent) : Owner(parent) {}
};
class Foo {
private: TEvent<Foo> Froozle; // see below
};
Now the problem is that I can't initialize the Froozle
instance directly, nor using the instanciation list of Foo's constructor, because this
references are not allowed there. Apart from adding another method setParent(T*)
(which I don't like too much because it means that I have to leave the TEvent<>
instance in an invalid state), is there a way to achieve this?
It is OK to use this
in the initialization list, as long as it is not used to access any members that may not have been initialized yet.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With