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

Benjamin Scherrey scherrey@switchco.com
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!

llewelly@edevnull.com wrote:

> rlau@csc.com writes:
>
> > Please respond to scherrey@switchco.com
> >     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