Привет
Помогите разобраться, как компилятор кодирует диспечеризируемый вызов интерфейсного типа, что есть указатель на интерфейс и как работает множественное наследование?
Можно на конкретном примере:
with Ada.Finalization;
package Pkg is
type Window is interface;
procedure Move (Self : Window; Position : Integer) is abstract;
type Window_Access is access all Window'Class;
type Impl is new Ada.Finalization.Controlled and Window with null record; procedure Move (Self : Impl; Position : Integer) is null;
Object : aliased Impl;
end Pkg;
with Pkg;
procedure Aaa is
My_Object : Pkg.Window_Access := Pkg.Object'Access;
begin
My_Object.Move (10);
end Aaa;
--
Maxim Reznik
Maxim Reznik пишет:
Привет
Помогите разобраться, как компилятор кодирует диспечеризируемый вызов
интерфейсного типа, что есть указатель на интерфейс и как работает
множественное наследование?
А в этой документации что–то не описано? (сам не читал)
https://www.adacore.com/knowledge/technical-papers/the-implementation-of-ada-2005-interface-types-in-the-gnat-compiler/
-- If you want to get to the top, you have to start at the bottom
Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти