I\'m currently having a discussion with my teacher about class design and we came to the point of Initialize()
functions, which he heavily promotes. Example:
I"m against 'double initialization' in C++ whatsoever.
Arguments against constructors:
- can't be overridden by derived classes
- can't call virtual functions
If you have to write such code, it means your design is wrong (e.g. MFC). Design your base class so all the necessary information that can be overridden is passed through the parameters of its constructor, so the derived class can override it like this:
Derived::Derived() : Base(GetSomeParameter())
{
}