Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.5 MB
Время: 0.023 c
14-42132
undert
2003-10-22 00:27
2003.11.13
Хамы!


3-40971
SasaR
2003-10-16 17:16
2003.11.13
BLOB поле


1-41505
qwe
2003-10-28 14:14
2003.11.13
Обьясните что это означает


1-41523
Atreides
2003-11-04 11:36
2003.11.13
Как установить Selection в TCustomGrid?


1-41715
Тролль
2003-11-03 17:19
2003.11.13
Перенос пр-р и фуну-ий в другой файл