From 7867973218543339326
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: f78e5,cc5b2194d357e113
X-Google-Attributes: gidf78e5,public
X-Google-ArrivalTime: 2003-02-21 14:13:09 PST
Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!kibo.news.demon.net!mutlu.news.demon.net!demon!mail2news.demon.co.uk!devnull
From: greg.hickman@lmco.com (Greg Hickman)
Newsgroups: comp.std.c++
Subject: Re: Virtual Base Constructors
Date: Fri, 21 Feb 2003 22:13:08 +0000 (UTC)
Organization: Lockheed Martin Corporation
Lines: 30
Approved: fjh@cs.mu.oz.au (Fergus Henderson , moderator of comp.std.c++)
Message-ID: <b365ik$otc5@cui1.lmms.lmco.com>
References: <58F604E3D17AD4119D8600508BE325060EA9A2F1@emss07m04.lmtas.lmco.com> <1045838077.814275@master.nyc.kbcfp.com>
Content-Transfer-Encoding: 7BIT
X-Trace: mail2news.demon.co.uk 1045865588 715 10.0.0.1 (21 Feb 2003 22:13:08 GMT)
X-Complaints-To: abuse@demon.net
NNTP-Posting-Date: Fri, 21 Feb 2003 22:13:08 +0000 (UTC)
X-Received: from mulga.cs.mu.oz.au ([128.250.1.22])
	by news.demon.co.uk with esmtp (Exim 4.05)
	id 18mLPm-0000BO-00
	for mail2news@news.news.demon.net; Fri, 21 Feb 2003 22:13:06 +0000
X-Received: by mulga.cs.mu.OZ.AU
	id JAA16380; Sat, 22 Feb 2003 09:13:03 +1100 (EST)
X-Authentication-Warning: mulga.cs.mu.OZ.AU: fjh set sender to devnull@stump.algebra.com using -f
X-Path: comp-std-cpp-robomod!not-for-mail
X-Robomod: STUMP, ichudov@algebra.com (Igor Chudov)
X-Delivered-To: std-c++@ncar.ucar.edu
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-Priority: 3
X-MSMail-priority: Normal
X-Newsgroups: comp.std.c++
X-Newsreader: Microsoft Outlook Express 6.00.2600.0000
X-Spam-Status: No, hits=-4.5 required=5.0
	tests=INVALID_MSGID,NOSPAM_INC,PRIORITY_NO_NAME,
	      QUOTED_EMAIL_TEXT,REFERENCES,SPAM_PHRASE_00_01
	version=2.41
Xref: archiver1.google.com comp.std.c++:18014


"Hyman Rosen" <hyrosen@mail.com> wrote in message
news:1045838077.814275@master.nyc.kbcfp.com...
> Hickman, Greg wrote:
> > Do we really have to require that Base call the Io_object constructor
even
> > though it ultimately *has* to be handled by the Concrete type anyway?
>
> No, quite the opposite. Base is required *not* to call the
> Io_object constructor when Concrete is being constructed.
> Despite appearances, a virtual base class is constructed
> only once, from the most derived class.

But the compiler requires that each intermediate base between the virtual
base and the most derived class repeat the constructor call in its member
initialization list, even though only the call from the most derived class
will ultimately be invoked.  If the intermediate bases are abstract, why not
allow them to the omit superfluous syntax for calls that will never be
invoked?

Greg



---
[ comp.std.c++ is moderated.  To submit articles, try just posting with ]
[ your news-reader.  If that fails, use mailto:std-c++@ncar.ucar.edu    ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html                       ]



