Форум: "Прочее";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];
Внизoverload для одного только метода Найти похожие ветки
← →
Псалтырь © (2008-08-08 11:18) [0]Смотрю в код DB.pas Делфай2007 и вижу:
procedure GetBookmarkData(Buffer: TRecordBuffer; Data: Pointer); overload; virtual;
Он один. И помечен как overload. В предках тоже отсутствует.
1. С каких пор это разрешено?
2. Какой тайный смысл?
← →
@!!ex © (2008-08-08 11:22) [1]> 1. С каких пор это разрешено?
ВСегда было?
> 2. Какой тайный смысл?
чтобы можно было безболезненно одноименные методы делать?
← →
@!!ex © (2008-08-08 11:24) [2]НА мой субъективный взгляд, ключевое слово overload - лишнее, и все методы должны по умолчанию считаться overload, как в С++ сделано...
вот override - нужен... жаль в С++ его нету.. А то смотриш на метод, и непонятно, толи он первый, толи он перекрывает существубщий.... Соттветственно нужно ли вызывать обработчик предка - не понятно...
← →
Сергей М. © (2008-08-08 11:27) [3]
> 1. С каких пор это разрешено?
С давних.
По кр.мере начиная с Д7.
> 2. Какой тайный смысл?
Да просто появилась у авторов мысленка на всякий пожаный в будущем перегрузить этот метод в этом классе и дать возможность перекрыть его в наследниках.
На перегрузку потом забили, а про перекрытие надо смотреть не в предках, а в наследниках)
← →
{RASkov} © (2008-08-08 12:46) [4]> [2] @!!ex © (08.08.08 11:24)
> НА мой субъективный взгляд, ключевое слово overload - лишнее
Зря лишнее.... довольно верное решение, как и объявление типов переменных...
← →
@!!ex © (2008-08-08 12:51) [5]> [4] {RASkov} © (08.08.08 12:46)
Ну4 вот есть предок, в нем для метода не объявлен overload.
А в наследнике нужно перекрыть. и как быть?
Менять предка? не лучшее решение...
← →
Псалтырь © (2008-08-08 13:07) [6]
> Сергей М. © (08.08.08 11:27) [3]
>
>
> На перегрузку потом забили, а про перекрытие надо смотреть
> не в предках, а в наследниках)
Наследник - мой класс. И не приложу ума зачем бы мне там еще один одноименный метод.
← →
Сергей М. © (2008-08-08 13:15) [7]
> зачем бы мне там еще один одноименный метод
Кроме твоих наследников в штатной библиотеке фигурирует туева хуча других наследников этого класса)..
Задумка разработчиков, если она не ляп, была ориентирована, пожалуй, именно на них - мало ли какие параметры им еще взбредет в голову в будущем передавать в этот метод)
← →
{RASkov} © (2008-08-08 13:15) [8]> [5] @!!ex © (08.08.08 12:51)
> А в наследнике нужно перекрыть. и как быть?
Не совсем понял, но:
Если в предке он статичный, то в наследнике просто создать с тем же именем и все, но это будет некое "перекрытие"(override), а мы о "перегрузке"(overload)... А перегрузить наверное тоже можно.... Что-то не соображу никак.... нужно или пробывать или читать F1...
> [6] Псалтырь © (08.08.08 13:07)
Тебе может и не пригодится, а кому нибудь понадобится сменить набор параметров.... Оставив возможность вызова "старой" процедуры...
← →
Псалтырь © (2008-08-08 13:22) [9]Еще вопрос. Раньше был такой вот файлик $DELPHI$/Doc/BDE.int , а где его искать в Д2007?
Спасибо
← →
@!!ex © (2008-08-08 13:23) [10]> [8] {RASkov} © (08.08.08 13:15)
Я имел ввиду именно перегрузку. Опечатался. Сорри.
← →
{RASkov} © (2008-08-08 13:31) [11]> [10] @!!ex © (08.08.08 13:23)
> Я имел ввиду именно перегрузку.
> Ну4 вот есть предок, в нем для метода не объявлен overload.
> А в наследнике нужно перегрузить. и как быть?
Ну может так:TCl = class
public
procedure P(N: Integer);
end;
TMyCl = class(TCl)
procedure P(S: String); overload;
end;
← →
{RASkov} © (2008-08-08 13:37) [12]> [9] Псалтырь © (08.08.08 13:22)
> а где его искать в Д2007?
При активном раб. столе нажми F3...
← →
@!!ex © (2008-08-08 13:38) [13]> [11] {RASkov} © (08.08.08 13:31)
Спасибо!
← →
Игорь Шевченко © (2008-08-08 13:38) [14]в 2006 никаких overload нету (и прототип слегка другой:
procedure GetBookmarkData(Buffer: PChar; Data: Pointer); virtual;
)
← →
Anatoly Podgoretsky © (2008-08-08 13:49) [15]> @!!ex (08.08.2008 12:51:05) [5]
Сдался вам этот overload, от него проблем больше, чем пользы, пошли на поводу у ламеров.
← →
Юрий Зотов © (2008-08-08 13:57) [16]> С каких пор это разрешено?
С D4. Перегрузка появилась там.
← →
Псалтырь © (2008-08-08 14:38) [17]
> Юрий Зотов © (08.08.08 13:57) [16]
Да, но всегда требовалось как минимум две функции... Если я не ошибаюсь.
> Игорь Шевченко © (08.08.08 13:38) [14]
В 2009 вообще практически везде вмето Pchar параметров будет PByte.
> {RASkov} © (08.08.08 13:37) [12]
> При активном раб. столе нажми F3...
А что произойдет? Поиском я пробежался уже по диску. Может быть поменяли название, или еще чего.
← →
Anatoly Podgoretsky © (2008-08-08 14:41) [18]
> В 2009 вообще практически везде вмето Pchar параметров будет
> PByte.
В абракадабере с тобой не согласны.
← →
{RASkov} © (2008-08-08 14:43) [19]> [17] Псалтырь © (08.08.08 14:38)
> Да, но всегда требовалось как минимум две функции... Если я не ошибаюсь.
Ошибаешься.
Может быть поменяли название, или еще чего.
Может быть.... тогда вопрос в [9] не корректен :)
← →
Palladin © (2008-08-08 14:44) [20]
> Если я не ошибаюсь.
для d6, ты точно ошибаешься, что не ошибаешься. да и для d5 и d4 противопоказаний не вижу.
← →
ketmar © (2008-08-08 15:00) [21]>[0] Псалтырь © (2008-08-08 11:18:00)
>Делфай2007
с каких пор разрешено называть годор «делфай»? die.
---
Do what thou wilt shall be the whole of the Law.
← →
Псалтырь © (2008-08-08 15:08) [22]
> Anatoly Podgoretsky © (08.08.08 14:41) [18]
> В абракадабере с тобой не согласны.
Я очень рад. Но передо мной сейчас 2009 Тибурон Confidential Field Test Version. И я знаю, о чем говорю. Когда я говорил везде, то имел ввиду методы TDataset. Такие как AllocRecordBuffer, ClearCalcFields, FreeRecordBuffer, GetRecord, InitRecord etc.
То есть там где в качестве буффера раньше использовался PChar, заменено на PByte.
> {RASkov} © (08.08.08 14:43) [19]
> Palladin © (08.08.08 14:44) [20]
> Ошибаешься.
Век живи - век учись.
> ketmar © (08.08.08 15:00) [21]
Укуси себя за хвост, жалкий человечишко. Делфай оно читается.
← →
ketmar © (2008-08-08 15:32) [23]Удалено модератором
← →
Юрий Зотов © (2008-08-08 15:40) [24]Слежу с большим интресом...
← →
Псалтырь © (2008-08-08 15:43) [25]Удалено модератором
← →
ketmar © (2008-08-08 15:44) [26]Удалено модератором
← →
Псалтырь © (2008-08-08 15:45) [27]Удалено модератором
← →
ketmar © (2008-08-08 15:45) [28]Удалено модератором
← →
Псалтырь © (2008-08-08 15:47) [29]Удалено модератором
← →
ketmar © (2008-08-08 15:49) [30]Удалено модератором
← →
Johnmen © (2008-08-08 15:49) [31]Удалено модератором
← →
Псалтырь © (2008-08-08 15:53) [32]Удалено модератором
← →
Псалтырь © (2008-08-08 15:56) [33]По вопросу с определениями BDE, которое раньше BDE.int называлось, кто-нибудь может подсказать?
← →
Mystic © (2008-08-08 16:01) [34]> 1. С каких пор это разрешено?
> 2. Какой тайный смысл?
С одной стороны, запас карман не тяготит. С другой, ... не, военную поговорку приводить не буду.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.045 c