Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2012, 10:48   #1
vladis222
Пользователь
 
Регистрация: 26.09.2011
Сообщений: 24
По умолчанию Описание классов Delphi

Здравствуйте,прошу вашей помощи в описании классов на делфи. У меня в программе должно работать наследование(класс окружность унаследован от класса Точка. Я описал это в программе, но наверное ошибся в описаниях классов.Посмотрите,пожалуйста,на ошибки.

Вот описание классов:

Код:
unit Unit1;

interface
 type TPoint=class
protected
   CX,CY:double;
   procedure SetValueCX(icx:double);
   procedure SetValueCY(icy:double);
public
   constructor Create(icx,icy:double);
   destructor  Destroy();
   property ValueX:double read CX write SetValueCX;
   property ValueY:double read CY write SetValueCY;
   end;
implementation
 constructor TPoint.Create(icx,icy:double);
begin
icx:=0;
icy:=0;
end;
destructor TPoint.Destroy();
begin
end;
procedure TPoint.SetValueCX(icx:double);
begin
 CX:=icx;
end;
procedure TPoint.SetValueCY(icy:double);
begin
 CY:=icy;
end;
end.

unit Unit2;

interface
 uses
  Unit1,Math;
type TCircle=class(TPoint)
  private
    Radius:double;
    procedure SetValueR(iRadius:double);
  public
    constructor Create(icx,icy,IRadius:double);
    destructor  Destroy;
    property ValueR:double read Radius write SetValueR;
    function square(Radius:double):double;
end;
implementation
constructor TCircle.Create(icx,icy,iRadius:double);
begin
inherited create(0,0);
IRadius:=0;
end;
destructor TCircle.Destroy();
begin
inherited destroy;
end;
procedure TCircle.SetValueR(iRadius:double);
begin
 Radius:=iRadius;
end;
function TCircle.square(Radius:double):double;
begin
Result:=PI*power(Radius,2);
end;
end.
vladis222 вне форума Ответить с цитированием
Старый 12.07.2012, 12:44   #2
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Цитата:
Сообщение от vladis222 Посмотреть сообщение
Здравствуйте,прошу вашей помощи в описании классов на делфи. У меня в программе должно работать наследование(класс окружность унаследован от класса Точка. Я описал это в программе, но наверное ошибся в описаниях классов.Посмотрите,пожалуйста,на ошибки.

Вот описание классов:

Код:
unit Unit1;

interface
 type TPoint=class
protected
   CX,CY:double;
   procedure SetValueCX(icx:double);
   procedure SetValueCY(icy:double);
public
   constructor Create(icx,icy:double);
   destructor  Destroy();
   property ValueX:double read CX write SetValueCX;
   property ValueY:double read CY write SetValueCY;
constructor Create(icx,icy:double);
destructor Destroy();
   end;
implementation
 constructor TPoint.Create(icx,icy:double);
begin
icx:=0;
icy:=0;
end;
destructor TPoint.Destroy();
begin
end;
procedure TPoint.SetValueCX(icx:double);
begin
 CX:=icx;
end;
procedure TPoint.SetValueCY(icy:double);
begin
 CY:=icy;
end;
end.

unit Unit2;

interface
 uses
  Unit1,Math;
type TCircle=class(TPoint)
  private
    Radius:double;
    procedure SetValueR(iRadius:double);
  public
    constructor Create(icx,icy,IRadius:double);
    destructor  Destroy;
    property ValueR:double read Radius write SetValueR;
    function square(Radius:double):double;
constructor Create(icx,icy,iRadius:double);
destructor Destroy();
end;
implementation
constructor TCircle.Create(icx,icy,iRadius:double);
begin
inherited create(0,0);
IRadius:=0;
end;
destructor TCircle.Destroy();
begin
inherited destroy;
end;
procedure TCircle.SetValueR(iRadius:double);
begin
 Radius:=iRadius;
end;
function TCircle.square(Radius:double):double;
begin
Result:=PI*power(Radius,2);
end;
end.
Вы не обявили конструкторы и деструкторы в классе. Я сдлелал это, но может еще есть ошибки...
Delphi_ProGer вне форума Ответить с цитированием
Старый 12.07.2012, 13:12   #3
volvo877
Форумчанин
 
Аватар для volvo877
 
Регистрация: 01.06.2009
Сообщений: 108
По умолчанию

Вообще-то конструктуры/деструкторы уже были объявлены в первом посте. Кстати, надо внимательно смотреть на сообщения компилятора, он предупреждает, что деструктор класса скрывает деструктор предка, потому что забыт Override.

vladis222, в чем ошибка заключается? Что-то не так работает? Можно пример кода, как используются эти классы?
volvo877 вне форума Ответить с цитированием
Старый 12.07.2012, 13:58   #4
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

volvo877, блин, не внимательно прочитал.
Delphi_ProGer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.Описание лабораторной работы. Помиогите сделать описание проги .какая формула что делает. Elimay25 Паскаль, Turbo Pascal, PascalABC.NET 1 01.03.2012 16:34
Обработка и описание исключений в библиотеке классов Руслантус C# (си шарп) 5 23.09.2011 13:32
описание классов многочленов Sined121 Помощь студентам 0 03.12.2009 16:23
Описание диаграммы классов Krechet Общие вопросы Delphi 4 07.05.2009 13:53
Создание классов и использование объектов классов при написании программ в среде C++. Frozen inside Помощь студентам 0 16.04.2009 23:18