[linux-elitists] Opera beta for linux available

Dan Wilder dan@ssc.com
Fri Oct 6 13:48:11 PDT 2000


On Fri, Oct 06, 2000 at 09:11:00PM +0100, Paul J Collins wrote:
> >>>>> "Dan" == Dan Wilder <dan@ssc.com> writes:
> 
>     Dan> On Fri, Oct 06, 2000 at 08:15:51PM +0100, Paul J Collins wrote:
>     >> >>>>> "Deirdre" == Deirdre Saoirse <deirdre@deirdre.net> writes:
>     Deirdre> Console says: pure virtual method called
>     >> Oh dear.  Check your constructors, Opera c0derz.
> 
>     Dan> The nearest Eiffel equivalent of C++'s "pure virtual" is
>     Dan> "deferred", and the Eiffel compiler's gonna smack you upside
>     Dan> the head if you try to instantiate a class with deferred
>     Dan> features.
> 
> So will a C++ compiler.
> 
> The message Deirdre reported usually happens when you call a virtual
> function implemented in a class derived from the class of the
> constructor currently executing.
> 
> While the compiler could warn about incorrect calls from constructors,
> it couldn't guard against passing the this pointer to a function
> outside the current translation unit that calls such a virtual
> function.

Eiffel ducks that one by

-- not permitting such pointer passing.  The language is 
   supposed to be complete enough, you don't need to do
   such scary things.

-- current translation unit (at the Eiffel level) is always the 
   entire program.

That last isn't quite as onorous as you might expect, due
to various heuristics and shortcuts involving the existing
debris of previous compiliations.

--
Dan Wilder




More information about the linux-elitists mailing list