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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2008, 19:21   #1
Stail
Новичок
Джуниор
 
Регистрация: 25.10.2008
Сообщений: 2
По умолчанию Лабораторная: объявление классов. Delphi 7

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TAnimal = class
  public
    constructor Create;
    function GetKind: string;
    function Voice: string; virtual; abstract;
  private
    Kind: string;
  end;

  TDog = class (TAnimal)
  public
    constructor Create;
    function Voice: string; override;
    function Eat: string; virtual;
  end;

  TCat = Class (TAnimal)
  public
    constructor Create;
    function Voice: string; override;
    function Eat: string; virtual;
  end;

   TForm1 = class(TForm)
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    Button1: TButton;
    Label1: TLabel;
    procedure Form1OnCreate(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    MyAnimal: TAnimal;
  public
    { Public declarations }
  end;

var
  Animal: TAnimal;
  Cat: TCat;
  Dog: TDog;
  Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.Form1OnCreate(Sender: TObject);
begin
  MyAnimal := TDog.Create;
end;

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
  MyAnimal.Free;
  MyAnimal:=TAnimal.Create;
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
  MyAnimal.Free;
  MyAnimal:=TAnimal.Create;
end;

procedure TForm1.RadioButton3Click(Sender: TObject);
begin
  MyAnimal.Free;
  MyAnimal:=TAnimal.Create;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := MyAnimal.Voice;
end;

end.
Подскажите, в чем ошибка при объявлении класса TAnimal?
Самое смешное, что объявление классов списано из методических указаний к выполнению лабы.
Код:
[Error] Unit1.pas(12): Unsatisfied forward or external declaration: 'TAnimal.Create'
[Error] Unit1.pas(13): Unsatisfied forward or external declaration: 'TAnimal.GetKind'
[Hint] Unit1.pas(16): Private symbol 'Kind' declared but never used
[Error] Unit1.pas(21): Unsatisfied forward or external declaration: 'TDog.Create'
[Error] Unit1.pas(22): Unsatisfied forward or external declaration: 'TDog.Voice'
[Error] Unit1.pas(23): Unsatisfied forward or external declaration: 'TDog.Eat'
[Error] Unit1.pas(28): Unsatisfied forward or external declaration: 'TCat.Create'
[Error] Unit1.pas(29): Unsatisfied forward or external declaration: 'TCat.Voice'
[Error] Unit1.pas(30): Unsatisfied forward or external declaration: 'TCat.Eat'
Stail вне форума Ответить с цитированием
Старый 02.11.2008, 19:53   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Stail Посмотреть сообщение
Подскажите, в чем ошибка при объявлении класса TAnimal?
Самое смешное, что объявление классов списано из методических указаний к выполнению лабы.
В объявлении ошибок нет. Где реализация ? :

Код:
constructor TAnimal.Create;
begin
   //...
end;

// и так далее...
alexBlack вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
лабораторная по Qbasic MsVlarbuzZ Помощь студентам 5 09.01.2008 15:07
Лабораторная работа за деньги Doodlez Фриланс 17 13.09.2007 19:54
лабораторная работа, Паскаль Andrei18 Фриланс 4 25.03.2007 18:25