Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
3-1206532972
Xmen
2008-03-26 15:02
2008.09.28
Хранимая процедура. Перевод строки


15-1217935394
data
2008-08-05 15:23
2008.09.28
Посоветуйте цифровую видеокамеру.


2-1218790822
Vlad Oshin
2008-08-15 13:00
2008.09.28
Интерфейс. Как бы сделать?


3-1206562057
Fin
2008-03-26 23:07
2008.09.28
Узнать Значение счётчика


1-1198490444
Zheksik
2007-12-24 13:00
2008.09.28
Размер и положение консольного окна.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский