Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

overload или ещё чт-то нужно? [D6, XP]


Pasha L ©   (2007-01-17 22:59:00) 

Здравствуйте. Создал свой класс. У него два конструктора, объявляю так:
   constructor create(ALrate,ASflatness:double;INP:cardinal); overload;
   constructor create; overload;

но получается так, что вылезающая подсказка о заполнении параметров вызываемой подпрограммы состоит из трех пунктов, два из которых без параметров (и называются то все "create"). Похоже, что наряду с созданными мной конструкторами учитывается и тот, что идет по умолчанию от TObject. Как убрать нафиг из выползающего списка этот родительский конструктор?


default   (2007-01-17 23:52:00) [1]

надо просто знать правило, что всё что можно делать c предком тоже можно делать и с потомком
и справки никакой не надо ибо прямое следствие про область видимости


Джо   (2007-01-17 23:46:00) [2]

> [10] oxffff ©   (17.01.07 23:44)
> but you cannot decrease its visibility.

well done! :)


oxffff   (2007-01-17 23:44:00) [3]

Джо ©   (17.01.07 23:31) [8]

Ваше задание выполнено.

-The scope of a member's identifier starts at the point where the member is declared, continues to the end of the class declaration, and extends over all descendants of the class and the blocks of all methods defined in the class and its descendants.

-You can increase the visibility of a member in a descendant class by redeclaring it, but you cannot decrease its visibility.


oxffff   (2007-01-17 23:37:00) [4]


> Предлагаю попробовать. И увидеть, что вызовется стандартный
> конструктор без параметров от TObject. А затем еще почитать
> справку об уменьшении области видимости в классах-потомках.
>


Вы правы.
Иду читать справку.
Благодарю.


Джо   (2007-01-17 23:31:00) [5]

> [5] oxffff ©   (17.01.07 23:28)
>
> > Джо ©   (17.01.07 23:26) [4]
> > > Но только вызывать create без параметров сможешь только
>
> >
> > > в этом модуле.
> >
> > Что за глупость такая, простите?
>
>
> A protected member is visible anywhere in the module where
> its class is declared and from any descendant class, regardless
> of the module where the descendant class appears.

Предлагаю попробовать. И увидеть, что вызовется стандартный конструктор без параметров от TObject. А затем еще почитать справку об уменьшении области видимости в классах-потомках.


oxffff   (2007-01-17 23:30:00) [6]

reintroduce работает для виртульных методов.

Я уже попробывал. ;)


Eraser   (2007-01-17 23:29:00) [7]

> constructor create; overload;

constructor create; reintroduce; overload;
попробуй так.


oxffff   (2007-01-17 23:28:00) [8]


> Джо ©   (17.01.07 23:26) [4]
> > Но только вызывать create без параметров сможешь только
>
> > в этом модуле.
>
> Что за глупость такая, простите?


A protected member is visible anywhere in the module where its class is declared and from any descendant class, regardless of the module where the descendant class appears.


Джо   (2007-01-17 23:26:00) [9]

> Но только вызывать create без параметров сможешь только
> в этом модуле.

Что за глупость такая, простите?


oxffff   (2007-01-17 23:25:00) [10]


> Но только вызывать create без параметров сможешь только
> в этом модуле.


Ну и у производных классов.


oxffff   (2007-01-17 23:23:00) [11]

Вот так появляться будет только два
myClassA=class
protected
constructor create;overload;
public
constructor create(ALrate,ASflatness:double;INP:cardinal); overload;
end;

Но только вызывать create без параметров сможешь только в этом модуле.


oxffff   (2007-01-17 23:20:00) [12]

В этом ничего страшного нет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо