Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.035 c
2-1169130268
vitv
2007-01-18 17:24
2007.02.04
Построение запроса


15-1168780378
FAskerQ
2007-01-14 16:12
2007.02.04
Нужен перевод


15-1168833694
Slider007
2007-01-15 07:01
2007.02.04
С днем рождения ! 14 января


2-1169376372
girichev
2007-01-21 13:46
2007.02.04
PageScroller


15-1168889829
The X
2007-01-15 22:37
2007.02.04
Корректное отображение кириллицы в названиях разделов в CHMхелпах





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