On 16/04/22 10:26 pm, Steven D'Aprano wrote:
C++ and Eiffel are even stricter (more restrictive) than Python. They
don't just exclude class hierarchies which are inconsistent, they
exclude class hierarchies with perfectly good linearizations because
they have a method conflict.
No, they don't *
On 16/04/22 11:13 pm, Steven D'Aprano wrote:
So we might say that all inheritance is delegation, but not all
delegation is inheritance. We might even go further and say that any
delegation to a superclass (not just the direct parent) is a form of
manual inheritance.
To my way of thinking, dele
On 16/04/22 10:46 pm, Steven D'Aprano wrote:
On Sat, Apr 16, 2022 at 05:56:13PM +1200, Greg Ewing wrote:
There's nothing incoherent or inconsistent about the way C++
and Eiffel do MI.
Good thing I never said that they were incoherent or inconsistent.
You seemed to be implying that, though.
I'm a bit late to this conversation, but here i go:
Steven d'Aprano writes:
> But given the assumptions that:
>
> - the inheritance model automatically resolves conflicts;
>
> - the MRO is entirely dependendent on the shape of the inheritance
> graph, and not on incidental properties like the
Greg Ewing writes:
> On 16/04/22 10:46 pm, Steven D'Aprano wrote:
> > There is no *guessing* in the C3 linearization algorithm.
>
> "Guessing" in the context of that Zen line means making an arbitrary
> choice that may or may not be what the programmer wants. It doesn't
> mean choosing at r