Форум: "Начинающим";
Текущий архив: 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.048 c