Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: CL | DM;

Вниз

Class functions   Найти похожие ветки 

 
Token   (2015-04-22 11:21) [0]

Есть такая конструкция

TCommIntfObj = class(TInterfacedObject)
 public
    class function GetSetupFrameClass: TSetupFrameClass;
 end;
TCommIntfObjClass=class of TCommIntfObj

TRS232 = class(TCommIntfObj)
public
    class function GetSetupFrameClass: TSetupFrameClass;
end;

const
 ComObjs=array [0..0] of TCommIntfObjClass  = (TRS232)
....
begin
 frmCls:=ComObj[0].GetSetupFrameClass
end


Какой метод будет вызван TCommIntfObj или TRS232?


 
Token   (2015-04-22 12:06) [1]

Удалено модератором


 
junglecat ©   (2015-04-22 12:38) [2]

статические функции не наследуются


 
icWasya ©   (2015-04-22 14:59) [3]

Надо функцию сделать виртуальной.


 
Ega23 ©   (2015-04-23 10:04) [4]


> статические функции не наследуются


чёй-та?


 
DVM ©   (2015-04-23 10:18) [5]

Это вообще не статические функции, а классовые.


 
DVM ©   (2015-04-23 10:52) [6]


> Token   (22.04.15 11:21) 

Классовые методы же могут быть виртуальными.  

Сделай так:

TCommIntfObj = class(TInterfacedObject)
public
   class function GetSetupFrameClass: TSetupFrameClass; virtual;
end;
TCommIntfObjClass=class of TCommIntfObj

TRS232 = class(TCommIntfObj)
public
   class function GetSetupFrameClass: TSetupFrameClass; override;
end;

И не ломай мозг себе и окружающим. Перекрывать невиртуальные методы вообще не очень хорошо, приводит к путанице.


 
Token   (2015-04-24 11:11) [7]

Спасибо.



Страницы: 1 вся ветка

Текущий архив: 2017.01.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
1-1345382325
abolnykh
2012-08-19 17:18
2017.01.15
Импорт объекта из dll


15-1453057828
Кто б сомневался
2016-01-17 22:10
2017.01.15
raise exception до Application.Run НЕ покажет сообщение.


2-1432123390
Цукор5
2015-05-20 15:03
2017.01.15
Утечка?


2-1426051919
goga_m
2015-03-11 08:31
2017.01.15
Проблема с запросом в Access


6-1281776559
Симулятор
2010-08-14 13:02
2017.01.15
Как сделать симуляцию в индиевских серверах?