Original Post
What I'm trying to achieve is that after my object is finished constructing, the base class makes a call to a virtual function named Initialize(). However the only time I can see to call that method is during the base class' constructor, and if I call it then it will occur before the derived classes constructor has had time to finish, not to mention calling a virtual function during a constructor just seems dangerous, even if it worked the derived class(es) aren't finished initializing. What I'm trying to avoid is having to have all programmers writing derived classes have to remember to call Initialize(), I would prefer that it "just happen" as far as they're concerned.
Here's an example of the flow I would like to achieve.
Class B derives from A
// Programmer only does this
MyObj B = new B();
1.) A's constructor occurs
2.) B's constructor occurs
3.) A calls virtual Initialize() method
// ===============================
// This part occurs if B handles Initialize()
3a.) B receives call to Initialize()
3b.) B calls base class Initialize()
// ===============================
4.) A receives call to Initialize()
Here's an example of the flow I would like to achieve.
Class B derives from A
// Programmer only does this
MyObj B = new B();
1.) A's constructor occurs
2.) B's constructor occurs
3.) A calls virtual Initialize() method
// ===============================
// This part occurs if B handles Initialize()
3a.) B receives call to Initialize()
3b.) B calls base class Initialize()
// ===============================
4.) A receives call to Initialize()