POV-Ray : Newsgroups : povray.off-topic : And today, C# : Re: And today, C# Server Time
11 Oct 2024 07:11:40 EDT (-0400)
  Re: And today, C#  
From: Warp
Date: 13 Feb 2008 05:36:15
Message: <47b2c81f@news.povray.org>
Darren New <dne### [at] sanrrcom> wrote:
> Invisible wrote:
> > ....so they implemented Java's flawed MI-but-not-MI model? How is that 
> > fixing the flaws from other major programming languages?

> Probably fixing what they saw as flawed MI in C++. :-)

  They "fixed the problems" by removing multiple inheritance completely?

  Maybe MI in C++ has some problems. I has never stopped me from using
MI in C++ efficiently and for really useful stuff, though.

  Ok, one small problem with C++'s multiple inheritance might be that
if you want to use virtual inheritance in a diamond inheritance situation,
you would have to have editing access to both base classes you are inheriting
from if they are not virtual-inheriting already. If these classes are eg.
in a library you don't have access to, tough luck.
  Of course this is because of technical reasons. The only alternative
would be that classes are *always* virtually-inherited by default, which
would introduce overhead in the vast majority of situations where virtual
inheritance is not needed. (Once again, the possibility of precompiled
libraries and dynamically-loadable libraries makes it not possible to
perform some post-compilation optimizations. Having shared system-wide
dynamically-loadable libraries is too much of an advantage to simply drop
that feature.)

  (Btw, I have always wondered: How are you supposed to build huge systems
with languages which do not support dynamically loadable shared libraries?
The advantage of these is that it reduces memory consumption a lot,
because libraries which are common to most programs are loaded into memory
only once, and all the programs use those one unique instantiations.
  Without this possibility each program would have to be statically linked
with all the system libraries, and thus the same system libraries would be
loaded into memory multiple times. If there's eg. a huge library used by all
programs, it would be loaded to memory as many times as there are programs
running.)

-- 
                                                          - Warp


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.