Non-default ctors, virtual base classes, & multiple inheritance all at once!

Benjamin Scherrey
Tue Sep 5 22:59:00 GMT 2000

Bless you my son! I have been going nuts with this thing. I could not find
this in any of my references. I'll probably run across it about two months
from now.... Thanx! wrote:

> writes:
> > Please respond to
> >     I'm having some trouble getting non-default constructors called for
> > virtual baseclasses in certain instances.. I've attached some code that
> > demonstrates this problem. In some cases, I can pass a parameter up the
> > tree to the virtual base class, in others, the default ctor is always
> > called even though my code clearly specifies the ctor taking a parm. Is
> > this a compiler bug or a language design issue?
> Language design.
> Constructors of virtual base classes are called from the constructor
>   of the most derived class.
> The reason is that any data members in a virtual base class must
>   appear only once in the final object, and must therefor only be
>   initialized once. Calling the constructor from  the constructor of
>   the final type is how the langauge ensures this.
> For a full explanation, ask comp.lang.c++.moderated

More information about the Gcc mailing list