![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Svetlana |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: ![]() ![]() ![]() |
Здравствуйте! Собственно как он действует я знаю,но проблемы всё равно возникли. Есть несколько(5) классов,точнее иерархия классов. И при объявлении в родительском (самом первом) классе раздела Protected программа перестает компилироваться. Каждый класс описан в своём модуле. Не знаю где ошибка.
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата программа перестает компилироваться по какой причине? Какая часть программы? Сам модуль, в который добавлена protected-секция, или остальные модули? Что компилятор говорит? Если ты попытаешься обратиться извне (не из методов класса и его наследников, а из простых процедур/функций) к методам/данным описанным в разделе protected, то ошибка, собственно, и должна быть. Для этого и вводились защищенные члены.Компилятор, как я понимаю, FPC? Или Дельфи? Куда тему-то передвигать? Я к тому, что Турбо-Паскаль не имеет понятия о защищенном разделе, Protected нельзя использовать, он просто не известен компилятору. Да, кстати, чтобы не гадать на кофейной гуще - все-таки, лучше бы присоединить проект. |
Svetlana |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: ![]() ![]() ![]() |
Ошибка возникает в самой програме (а не в модулях) в процедуру Create ,несоответствие праметров
Прикрепленные файлы ![]() ![]() ![]() ![]() ![]() |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Я ж написал тебе, что происходит:
Цитата Если ты попытаешься обратиться извне (не из методов класса и его наследников, а из простых процедур/функций) к методам/данным описанным в разделе protected, то ошибка, собственно, и должна быть. Ты пытаешься обратиться к защищенному конструктору TVehicle.Create из основной программы. Это невозможно: доступ к этому конструктору возможен только из наследников TVehicle. А в твоем случае компилятор, понимая, что защищенный конструктор недоступен, пытается вызвать дефолтный конструктор TObject.Create, который без параметров (я надеюсь, ты знаешь, что все классы - наследники TObject?). Отсюда и такая ошибка.P.S. Значит, все-таки Дельфи. Переезжаем... |
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 9:58 |