Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Ada] Наследование настраиваемых пакетов. Проблема с наследованием 
:(
    Опции темы
lc0d3r
  Дата 15.10.2009, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 22.7.2008
Где: Киев

Репутация: нет
Всего: нет



Возникла проблема с наследованием настраиваемых пакетов. Давайте попорядку:

есть следующие пакеты

Код

generic
    N : Positive;

package VectorUnit is
   subtype TElement is Integer;
   subtype TIndex is Positive;

........................................................................


наследуемый от него 
Код


generic
    N : Positive;

package VectorUnit.MatrixUnit is

........................................................................


и еще один который наследует два предыдущие

Код


generic
    N : Positive;

package VectorUnit.MatrixUnit.F3Unit is


........................................................................



когда же мы начинаем использовать эти пакеты в основном модуле

Код

with Ada.Text_Io; use Ada.Text_Io;      
with Ada.Integer_Text_Io; use Ada.Integer_Text_Io; 

with VectorUnit, VectorUnit.MatrixUnit, VectorUnit.MatrixUnit.F3Unit, VectorUnit.MatrixUnit.IOUnit;

procedure main is
    N : constant integer := 3;

            package VectorU is new VectorUnit(N);
    package MatrixU is new VectorU.MatrixUnit(N);
    package F3UnitU is new VectorU.MatrixUnit.F3Unit(N);        

    
            use VectorU, MatrixU;    


то настройка и подключение первых двух проходит нормально, а вот с третим возникают ошибки
вариант вида
Код

           package F3UnitU is new MatrixU.F3Unit(N);


тоже не работает. Вопрос состоит в том, чтобы оставить дженерики и наследование и заставить работать наследование.
Заранее спасибо за ответы.
PM MAIL WWW   Вверх
volvo877
Дата 18.10.2009, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 1
Всего: 116



Цитата(lc0d3r @  15.10.2009,  18:44 Найти цитируемый пост)
а вот с третим возникают ошибки
Правильно возникают... Вот так - не должны возникать:
Код
    package VectorU is new VectorUnit(N);
    package MatrixU is new VectorU.MatrixUnit(N);
    package F3UnitU is new MatrixU.F3Unit(N);


PM MAIL   Вверх
lc0d3r
Дата 19.10.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 22.7.2008
Где: Киев

Репутация: нет
Всего: нет



volvo877,  я же писал в посте выше, что так тоже пишет о ошибке
ежели небыло бы ошибки, я бы тут это не спрашивал smile

вот что конкретно пишет при Вашем варианте

Цитата

F3Unit was not found in the region of MatrixU, Ignoring future referances

PM MAIL WWW   Вверх
volvo877
Дата 19.10.2009, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 1
Всего: 116



Цитата(lc0d3r @  19.10.2009,  12:56 Найти цитируемый пост)
 я же писал в посте выше, что так тоже пишет о ошибке
ежели небыло бы ошибки, я бы тут это не спрашивал
Ты очень удивишься, но GNAT ошибки не выдает, все нормально компилируется, проверил специально. Может, у тебя что-то в самих пакетах не то? Присоедини его сюда полностью (если не секретная разработка, конечно smile ), я проверю на своем компиляторе (можно в приват, кстати, или на мыло (volvo71<мяу>yandex.ru), если все же не хочешь показывать проект публично)...

Это сообщение отредактировал(а) volvo877 - 19.10.2009, 14:05
PM MAIL   Вверх
lc0d3r
Дата 19.10.2009, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 22.7.2008
Где: Киев

Репутация: нет
Всего: нет



volvo877, большое спасибо за ответы, возможно моя проблема в том, что я использую Object Ada, а ты gnat.

Отправил тебе на почту весь проект. 
PM MAIL WWW   Вверх
volvo877
Дата 19.10.2009, 16:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 1
Всего: 116



Цитата(lc0d3r @  19.10.2009,  14:40 Найти цитируемый пост)
возможно моя проблема в том, что я использую Object Ada, а ты gnat
Угу... После переименования файлов (MatrixUnit.adb -> VectorUnit-MatrixUnit.adb, IOUnit.adb -> VectorUnit-MatrixUnit-IOUnit.adb) и так далее (как того требует GNAT) все завелось и откомпилировалось (ну, предупреждение в VectorUnit-MatrixUnit-IOUnit.adb касательно того, что J может быть неинициализирована в момент обращения, я пока проигнорировал, вопрос не в нем...)

Так что, что-то OA не то делает.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Добро пожаловать в раздел "Другие языки" форума Vingrad!

Void
Void

Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)

  • Обязательно следуйте правилам Форума.
  • Пожалуйста, прочитайте и следуйте рекомендациям по работе в разделе и навигации по Форуму.
  • Для вставки текстов исходных кодов используйте подсветку синтаксиса из выплывающего списка Код в форме ответа. Если Ваш язык в списке не представлен, то используйте тег: [code=ваш_язык]код[/code], например, [code=ada]код[/code]. Если в будущем подсветка синтаксиса для указанного языка будет реализована, исходный код преобразится.
  • Помните, один вопрос - одна тема.

Приятного времяпрепровождения! С уважением, Void, kemiisto .

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие языки | Следующая тема »


 




[ Время генерации скрипта: 0.1001 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.