5 4 Наследование и интроспекция

Мы можем получить всю иерархию классов.

Виртуальное наследование

По умолчанию для множественного наследования применяется виртуальное наследование.

class Base
{}
class A(Base)
{}
class B(Base)
{}
class Derived(A,B) // Будет иметь 1 предка Base
{}
class Base
{}
class A(copy Base)
{}
class B(copy Base)
{}
class Derived(A,B) // Будет иметь 2 предка Base
{}

let const der : Derived = new Derived();
let const abase : type(der)::A::Base = cast(der); // Апкаст к 1 из 2х родителей

Тип-агностичное приведение к базе

``` class A {} class B(A) {}

let const b : B = new B(); let const a : type(b)::@base = cast(b); ``` Так мы можем привести к родительскому классу не зная его тип.