Ada_Ru форум

Обсуждение языка Ада

Как работают интерфейсы?

Оставить новое сообщение

Сообщения

Maxim Reznik
Как работают интерфейсы?
2013-01-18 12:26:47

Привет

 

Помогите разобраться, как компилятор кодирует диспечеризируемый вызов интерфейсного типа, что есть указатель на интерфейс и как работает множественное наследование?

 

Можно на конкретном примере:

 

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

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти