Ada_Ru форум

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

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

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

Сообщения

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

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

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

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
Новое сообщение:
Страницы: 1

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