![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Задали такую вот програмку:
1)создать класс с набором одноименных методов работающих по разному 2))создать класс, в котором реализовать любой метод и 3 потомка этого класса, в которых будет осуществлено статическое , динамическое, виртуальное перекрытия метода 3)создать род класс и класс потомок из класса потомка, класс родителей явл абстрактным в классе потомке абстрактный метод перекрывается 4)создать класс и метод в нем. В классе потомке перекрыть этот метод так чтобы его можно было вызвать из класса потомка и метод род и метод потомка Желательно, в Lasaruse, хотя можно и в Delphi(не велика разница) Все 4 пункта мона распихать по разным прогам Плиз, пипл не пройдите мимо))) |
|
#2
|
||||
|
||||
|
Фраза из мультфильма:
- Так вы что за меня и есть будете? - Ага! |
|
#3
|
|||
|
|||
|
Ща уржусь сосмеху
|
|
#4
|
|||
|
|||
|
Итак первое:
Код:
type
TMyClass = class
private
{ Private declarations }
public
procedure MyMetod(str:string);overload;
procedure MyMetod(str:string;i:integer);overload;
procedure MyMetod(str:string;i:integer;j:boolean);overload;
{ Public declarations }
end;Третье: Код:
type
TAbClass = class
private
{ Private declarations }
public
procedure MyMetod(str:string);virtual; abstract;
{ Public declarations }
end;
type
TAb1Class = class(TAbClass)
private
{ Private declarations }
public
procedure MyMetod(str:string);virtual;
{ Public declarations }
end; |
|
#5
|
|||
|
|||
|
Спасибище большое))) Но если можно, можно на каких нить конкретных примерах??? Заранее благодарен
|
|
#6
|
|||
|
|||
|
Четвертое:
Код:
type T1Obj = class FExtData : Extended; procedure SetData(AValue: Extended);overload; end; T2Obj = class(T1Obj) FIntData : Integer; procedure SetData(AValue: Integer); overload; end; |
|
#7
|
|||
|
|||
|
Хоть бы пива кто купил
![]() |
|
#8
|
|||
|
|||
|
Слушай, а как их потом применять, в проге?
|
|
#9
|
||||
|
||||
|
Помогайте еще больше таким вот неудачникам по жизни: ехе-шниками и с документацией. Придет время и поймете абсолютную безсмысленность этого.
И кстати они станут еще и начальниками над Вами, благодаря "папику" ![]() П.С.: раздел "Работа" поможет. Последний раз редактировалось Konrad, 03.11.2009 в 23:56. |
|
#10
|
|||
|
|||
|
Ешки...Сам "пользователь" снизашел ко мне, чтоб постебаться... Крут, крут, ни чего не скажешь...Так держать)))
|
|
#11
|
|||
|
|||
|
Код:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
TAbClass = class(tform)
Edit1: TEdit;
Label1: TLabel;
private
{ Private declarations }
public
procedure MyMetod(s:string);virtual; abstract;
{ Public declarations }
end;
type
TAb1Class = class(TAbClass)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure MyMetod(s:string);virtual;
{ Public declarations }
end;
var
Ab1Class: TAb1Class;
implementation
{ TAb1Class }
procedure TAb1Class.MyMetod(S:string) ;
begin
Ab1Class.caption:=s;
end;
procedure TAb1Class.Button1Click(Sender: TObject);
begin
MyMetod ('Заработало))))))))');
end;
initialization
{$I Unit1.lrs}
end. 3 так будет или я чет не то сделал? Последний раз редактировалось Admin, 04.11.2009 в 12:15. |
|
#12
|
|||
|
|||
|
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TMyClass = class
private
{ Private declarations }
public
procedure MyMetod(str:string);overload;
procedure MyMetod(str:string;i:integer);overload;
procedure MyMetod(str:string;i:integer;j:boolean);overload;
{ Public declarations }
end;
TAbClass = class
private
{ Private declarations }
public
procedure MyMetod(str:string);virtual; abstract;
{ Public declarations }
end;
TAb1Class = class(TAbClass)
private
{ Private declarations }
public
procedure MyMetod(str:string);virtual;
{ Public declarations }
end;
T1Obj = class
FExtData : Extended;
procedure SetData(AValue: Extended);overload;
end;
T2Obj = class(T1Obj)
FIntData : Integer;
procedure SetData(AValue: Integer); overload;
end;
var
Form1: TForm1;
my:TMyClass;
tab1:TAb1Class;
my_t2obj:T2Obj;
implementation
{$R *.dfm}
procedure TMyClass.MyMetod (str:string);
begin
ShowMessage(str);
end;
procedure TMyClass.MyMetod (str:string;i:integer);
var
j:integer;
begin
j:=0;
while (j<=i) do
begin
ShowMessage(str);
Inc(j);
end;
end;
procedure TMyClass.MyMetod(str:string;i:integer;j:boolean);
var
k:integer;
begin
if j then
begin
k:=0;
while (k<=i) do
begin
ShowMessage(str);
Inc(k);
end;
end;
end;
procedure TAb1Class.MyMetod(str:string);
begin
ShowMessage(str);
end;
procedure T1Obj.SetData(AValue: Extended);
begin
ShowMessage('Extended');
end;
procedure T2Obj.SetData(AValue: Integer);
begin
ShowMessage('Integer');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
my.MyMetod('Hello');
my.MyMetod('Hello',3);
my.MyMetod('Hello',3,false);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
tab1.MyMetod('I abstact');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
my_t2obj.SetData(2);
my_t2obj.SetData(2.25);
end;
end. |
|
#13
|
|||
|
|||
|
Всё круто))) Спс огромное))) только вот Button2 выдает ошибку
Project1 rised exception class 'External: SIGSEGV' |
|
#14
|
|||
|
|||
|
Это ошибка Lazarus, ничем не помогу.
Изучай тему:http://http://pascalgames.net/index.php?topic=241.15 |
|
#15
|
|||
|
|||
|
Окей))) Спасибо большое)))
|