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

> 

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Переопределение виртуальных методов, FreePascal
сообщение
Сообщение #1


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

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


Несколько часов искал ошибку, которую FreePascal вроде должен бы отлавливать:
Наследник в переопределении виртуального метода предка делает его статическим. Должен ли компилятор сообщить об этом? Ведь в Паскале вроде нельзя так делать?


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

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


Да все теже шарики:

type
  TPGObject=^TGObject;
  TGObject=object
    v,col:byte; //speed, color
    l,t:real;//angle, time
    constructor init(speed,color:byte; angle,time:real);
    procedure   moveto;
    procedure   ChangeDirection; virtual;//abstract; //!!!!!!!!!!!!!!!!!!
    procedure   calculation; virtual; //abstract;
    function    GetFrontPoint:TPoint; virtual;//abstract;
    function    IsInside(P:TPoint):boolean; virtual;//abstract;
    procedure   show; virtual;// abstract;
    procedure   hide; virtual;// abstract;
    destructor  done; virtual;
  end;




type
  TPBall=^TBall;
  TBall=object(TGObject)
    public
      pos:TPoint;
      //pos.x,pos_y:integer;
      radius:integer;//radius
      constructor init(x,y:integer; speed,color:byte; angle,time:real; r:byte);
      procedure   ChangeDirection; //!!!!!!!!!!!!!!!!!!
      procedure   calculation; virtual;
      function    GetFrontPoint:TPoint; virtual;
      function    IsInside(P:TPoint):boolean; virtual;
      procedure   show; virtual;
      procedure   hide; virtual;
      destructor  done; virtual;
    private
      function    distance(P:TPoint):real;
end;


Метод ChangeDirection.
Совместимость в обоих модулях стоит с TP - через директиву {$Mode Tp}

Сообщение отредактировано: Bokul -


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



- Текстовая версия 15.04.2025 2:22
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name