Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

overload или ещё чт-то нужно?   Найти похожие ветки 

 
Pasha L ©   (2007-01-17 22:59) [0]

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

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


 
oxffff ©   (2007-01-17 23:20) [1]

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


 
oxffff ©   (2007-01-17 23:23) [2]

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

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


 
oxffff ©   (2007-01-17 23:25) [3]


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


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


 
Джо ©   (2007-01-17 23:26) [4]

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

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


 
oxffff ©   (2007-01-17 23:28) [5]


> Джо ©   (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.


 
Eraser ©   (2007-01-17 23:29) [6]

> constructor create; overload;

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


 
oxffff ©   (2007-01-17 23:30) [7]

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

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


 
Джо ©   (2007-01-17 23:31) [8]

> [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:37) [9]


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


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


 
oxffff ©   (2007-01-17 23:44) [10]

Джо ©   (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.


 
Джо ©   (2007-01-17 23:46) [11]

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

well done! :)


 
default ©   (2007-01-17 23:52) [12]

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



Страницы: 1 вся ветка

Текущий архив: 2007.02.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.048 c
1-1165585804
Феникс
2006-12-08 16:50
2007.02.04
Экспорт в Excel - (не зарегистрирован класс LeftMargin)


2-1167921634
paradox
2007-01-04 17:40
2007.02.04
Soedenenie s BD


2-1169041501
FIL-23
2007-01-17 16:45
2007.02.04
есть ли функция для удаления не пустого каталога?


2-1169293784
afro
2007-01-20 14:49
2007.02.04
Помогите проверить на идентичность два tmemorystream


2-1169204894
Bobs
2007-01-19 14:08
2007.02.04
Проблема с программой





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский