Текущий архив: 2003.11.13;
Скачать: CL | DM;
ВнизОбьясните что это означает Найти похожие ветки
← →
qwe (2003-10-28 14:14) [0]type
TExporter=class
public
class function ExporterName: string; virtual; abstract;
end;
← →
Малиновский Владимир (2003-10-28 14:16) [1]Здесь говорится, Вы можете самостоятельно реализовать функцию с именем ExporterName, возвращающую строку. А если Вы этого не сделаете, то при обращении к функции с таким именем получите исключение "Abstract Error"
← →
Anatoly Podgoretsky (2003-10-28 14:18) [2]Это означает определение базового класса с абстактными методами, реализацию которых нужно сделать в наследнике.
← →
qwe (2003-10-28 14:18) [3]что означает слово class перед функцией
← →
Anatoly Podgoretsky (2003-10-28 14:19) [4]Метод класса, для работы не требуется объект
← →
Skier (2003-10-28 14:21) [5]>qwe (28.10.03 14:18) [3]
1)
Иногда такой функцией можно пользоваться не создавая экз-ра класс. Но к абстрактной ф-ции это не относится !
2) В теле этой функции Self будет указывать не на экз-р класса,
а на сам класс. Но к абстрактной ф-ции это тоже не относится !
← →
Vuk (2003-10-28 14:29) [6]>Но к абстрактной ф-ции это не относится !
Это как?
← →
qwe (2003-10-28 14:31) [7]function ClassManager: TList;
implementation
var
Manager: TList;
function ClassManager: TList;
begin
Result:=Manager;
end;
разве функция может быть экземпляром класса
← →
Skier (2003-10-28 14:32) [8]>Vuk © (28.10.03 14:29) [6]
Абстрактные ф-ции вызывал когда-нибудь ?
← →
qwe (2003-10-28 14:33) [9]нет
← →
Skier (2003-10-28 14:34) [10]
> разве функция может быть экземпляром класса
Не функция, а то что она возвращает.
и Manager, наверняка создаётся в initialization секции модуля. Нет ?
← →
qwe (2003-10-28 14:35) [11]да именно так
← →
Skier (2003-10-28 14:36) [12]>qwe (28.10.03 14:35) [11]
Ну и в чём проблема ? :)
← →
vuk (2003-10-28 14:37) [13]>Абстрактные ф-ции вызывал когда-нибудь ?
А то ж! :o) Только как понимать
>такой функцией можно пользоваться не создавая экз-ра класс.
в сочетании с
>Но к абстрактной ф-ции это не относится !
Это у Вас получается, что функцию класса, если она абстрактная, нельзя вызывать без создания экземпляра... :o)
← →
qwe (2003-10-28 14:38) [14]начинаю понемногу доходить,а есть ссылка почитать про virtual и abstract?
← →
Skier (2003-10-28 14:41) [15]>vuk © (28.10.03 14:37) [13]
Да. Перемудрил я. :)
← →
vuk (2003-10-28 14:42) [16]to qwe:
Все просто. Если виртуальный метод помечен как абстрактный, то у него отсутствует реализация и попытка его вызова приведет к ошибке.
← →
Skier (2003-10-28 14:44) [17]>qwe (28.10.03 14:38) [14]
Посмотри на класс TStrings и его потомок TStringList
Будет полезно...
← →
zapped (2003-10-28 14:45) [18]2qwe (28.10.03 14:38) [14]
F1
← →
Anatoly Podgoretsky (2003-10-28 14:45) [19]Попытка вызова у базового класса, но нормально для наследников, если конечно метод реализован.
← →
vuk (2003-10-28 14:47) [20]Ну естественно. Они ж в потомках будут помечены override. :o)
Страницы: 1 вся ветка
Текущий архив: 2003.11.13;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.033 c