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

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


Гуру
*****

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

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


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


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Bokul
сообщение 24.12.2006 0:53
Сообщение #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 - 24.12.2006 0:53


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

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


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

 



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