IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> ООП в Tp
klem4
сообщение 7.01.2007 21:37
Сообщение #1


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Как реализовать такое на TP, используя объекты ? Пробовал приведением к типу, не выходит ...

{$mode objfpc}
type
  TA = class
    constructor Create;
    procedure P; virtual;
  end;

  TB = class(TA)
    constructor Create;
    procedure P; override;
  end;

constructor TA.Create;
begin end;

procedure TA.P;
begin writeln('TA') end;

constructor TB.Create;
begin Inherited Create end;

procedure TB.P;
begin writeln('TB') end;

var
  A : ^TA;
begin
  GetMem(A, sizeof(TA));
  A^ := TB.Create;
  A^.P;
end.


{$mode TP}
type
  TA = object
    constructor Create;
    procedure P; virtual;
  end;

  TB = object(TA)
    constructor Create;
    procedure P; virtual;
  end;

constructor TA.Create;
begin end;

procedure TA.P;
begin writeln('TA') end;

constructor TB.Create;
begin Inherited Create end;

procedure TB.P;
begin writeln('TB') end;

var
  A : ^TA;
begin
  GetMem(A, sizeof(TA));
  A^.Create;
  TB(A^).P;
end.










Добавлено:
Вопрос решен smile.gif


  TB(A^).Create;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 8.08.2025 2:43
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"