Главная страница
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.022 c
3-41068
Sour
2003-10-22 19:30
2003.11.13
CASE средство разработки


4-42327
Guest
2003-09-04 15:19
2003.11.13
Переключение раскладки


7-42214
SiJack
2003-09-04 14:06
2003.11.13
работа с Com в Win98-winXP


6-41797
Lord Of The Dark Wind
2003-09-14 09:49
2003.11.13
TClientSocket & TServerSocket


3-40884
Митяй
2003-10-24 18:41
2003.11.13
Есть ли толковая замена PARADOX?