Переопределение виртуальных методов, FreePascal |
Переопределение виртуальных методов, FreePascal |
Bokul |
24.12.2006 0:43
Сообщение
#1
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Несколько часов искал ошибку, которую FreePascal вроде должен бы отлавливать:
Наследник в переопределении виртуального метода предка делает его статическим. Должен ли компилятор сообщить об этом? Ведь в Паскале вроде нельзя так делать? -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
24.12.2006 0:48
Сообщение
#2
|
Гость |
Код в студию...
(хотя бы описания классов, в которых определяется виртуальный метод, и где он замещается статическим ) |
Bokul |
24.12.2006 0:53
Сообщение
#3
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Да все теже шарики:
Метод ChangeDirection. Совместимость в обоих модулях стоит с TP - через директиву {$Mode Tp} Сообщение отредактировано: Bokul - 24.12.2006 0:53 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
24.12.2006 1:09
Сообщение
#4
|
Гость |
А что,
Цитата(Compiler Messages) ... уже недостаточно? Или на Warning-и не обращаем внимания? Ball.pas(11,19) Warning: An inherited method is hidden by "TBall.ChangeDirection(Byte, Double)" ... |
Bokul |
24.12.2006 1:31
Сообщение
#5
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Цитата Или на Warning-и не обращаем внимания? Обращал бы если знал как их включить... Как? -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
24.12.2006 1:37
Сообщение
#6
|
Гость |
По умолчанию все включено... Только при успешной (без Errors) компиляции окно Compiler Message становится Hidden, его надо опять показать... Alt+0 (ноль) Выбираешь CompilerMessages -> Show, и смотришь внимательно на все, что касается Warning и Hints...
|
Bokul |
24.12.2006 1:46
Сообщение
#7
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
-------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
24.12.2006 2:04
Сообщение
#8
|
Гость |
По-моему, Messages и CompilerMessages - не одно и то же... Проверь, есть ли в Window -> List именно CompilerMessages... Заодно еще и в Options -> Compiler -> Verbose посмотри, включено ли Warnings/Hints/Notes ...
|
Bokul |
24.12.2006 2:28
Сообщение
#9
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Ухты, спасибо . Полезная штука
Цитата Ball.pas(11,19) Warning: An inherited method is hidden by "TBall.ChangeDirection(Byte, Double)" А как это можно понимать? -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
24.12.2006 2:35
Сообщение
#10
|
Гость |
А вот так и понимать - метод предка скрыт методом TBall.ChangeDirection... А раз скрыт - то у тебя сразу должен возникнуть вопрос: а я просил скрывать? Нет, не просил... Значит, что-то не то... Или Override (с классами) или Virtual не поставил...
|
Bokul |
24.12.2006 2:39
Сообщение
#11
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Спасибо!
А можно сделать так, чтобы это окно не исчезало? -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
24.12.2006 2:43
Сообщение
#12
|
Гость |
Вообще-то я сейчас прочитал в User.pdf, что по нажатию F12 появляется окно с сообщениями последней компиляции... Есть смысл его держать всегда на экране?
|
Текстовая версия | 28.04.2024 21:40 |