Pitane
10 отговора
263 прегледа
Pitane
Imame slednite dwa swyrzani spisyka:
Type P1 = ^T1;
T1 = Record
..........
Next: P1;
End;
Type P2 = ^T2;
T2 = Record
..........
Next: P2;
End;
I slednite dwe primerni overload proceduri:
procedure PR1(Var Ptr: P1); overload;
begin
Ptr:= Null;
end;
procedure PR1(Var Ptr: P2); overload;
begin
Ptr:= Null;
end;
Pitaneto e slednoto : kak moje da se napishe edinna procedura, bez da se opiswa dwa pyti kato overload. Koiato da izwyrshwa opisanata primerna operacia i za dwata tipa ukazatelia. Prosto iskam da razbera, dali moje da se definira niakakyw obobshten ukazatel, kakywto e void * w C++. W segashnoto systoianie, neshtata wyrwiat, no me interesuwa dali ima po-elegaten nachin.
10x predwaritelno
[линк]
Type P1 = ^T1;
T1 = Record
..........
Next: P1;
End;
Type P2 = ^T2;
T2 = Record
..........
Next: P2;
End;
I slednite dwe primerni overload proceduri:
procedure PR1(Var Ptr: P1); overload;
begin
Ptr:= Null;
end;
procedure PR1(Var Ptr: P2); overload;
begin
Ptr:= Null;
end;
Pitaneto e slednoto : kak moje da se napishe edinna procedura, bez da se opiswa dwa pyti kato overload. Koiato da izwyrshwa opisanata primerna operacia i za dwata tipa ukazatelia. Prosto iskam da razbera, dali moje da se definira niakakyw obobshten ukazatel, kakywto e void * w C++. W segashnoto systoianie, neshtata wyrwiat, no me interesuwa dali ima po-elegaten nachin.
10x predwaritelno
[линк]
Re: Pitane
Mislish logichno !
Obache towa beshe 1-to neshto koeto probwah, obache mi dawa greshka pri kompilacia pri izwikwaneto na funkciata:
"Types of actual and formal var parameters must be identical"
[линк]
"Types of actual and formal var parameters must be identical"
[линк]
Re: Pitane
M/u drugoto ogledah deklaraciite na funkciite koito borawiat s promenliwi ot Pointer tip, naprimer kato: new. Deklaraciata na tazi funkcia ot helpa e slednata:
procedure New(var P: Pointer);
Pri neia e wyzmojen da byde podawan wsiakakyw pointerow tip kato parametyr pri izwikwaneto. Obache wyw samite sorsowe na Delphi e napisana na asembler ! Wsyshtnost kakto i drugite koito razgledah, kato GetMem FreeMem i t.n. Taka che ne mojah da se orientiram tochno po kakyw nachin da podam parametyra pri izwikwaneto !
[линк]
procedure New(var P: Pointer);
Pri neia e wyzmojen da byde podawan wsiakakyw pointerow tip kato parametyr pri izwikwaneto. Obache wyw samite sorsowe na Delphi e napisana na asembler ! Wsyshtnost kakto i drugite koito razgledah, kato GetMem FreeMem i t.n. Taka che ne mojah da se orientiram tochno po kakyw nachin da podam parametyra pri izwikwaneto !
[линк]
Re: Pitane
az lichno nishto (e malko de) ne shvashtam
to na takiva vuprosi obiknovenno me e murzel da se opitvam da otgovarqm puk i vse se namirat golemi misliteli deto izpisvat po 10000 reda za edin problem
sujalqvam no ne moga da pomogna
neshto ne mojesh li da oprostish malko vuprosa?
by Wise Guy
to na takiva vuprosi obiknovenno me e murzel da se opitvam da otgovarqm puk i vse se namirat golemi misliteli deto izpisvat po 10000 reda za edin problem
sujalqvam no ne moga da pomogna
neshto ne mojesh li da oprostish malko vuprosa?
by Wise Guy
Re: Pitane
защо ти е да използваш точно такива списъци, това ли е целта на занятието?
кажи какво е заданието, и мога да ти го нагодя с динамични масиви!
кажи какво е заданието, и мога да ти го нагодя с динамични масиви!
Re: Всъщност пробвай това :))
Type P1 = ^T1;
T1 = Record
Next: P1;
End;
Type P2 = ^T2;
T2 = Record
Next: P2;
End;
procedure PR1(Var Ptr: P1);
begin
Ptr:= nil;
end;
var Ptr1:P1;
Ptr2:P2;
Procedure some;
begin
PR1(ptr1);
PR1(P1(ptr2));
end;
T1 = Record
Next: P1;
End;
Type P2 = ^T2;
T2 = Record
Next: P2;
End;
procedure PR1(Var Ptr: P1);
begin
Ptr:= nil;
end;
var Ptr1:P1;
Ptr2:P2;
Procedure some;
begin
PR1(ptr1);
PR1(P1(ptr2));
end;
Re: Всъщност пробвай това :))
а може и така
procedure PR1(Var Ptr: Pointer);
begin
Ptr:= nil;
end;
var Ptr1:P1;
Ptr2:P2;
Procedure some;
begin
PR1(Pointer(ptr1));
PR1(Pointer(ptr2));
end;
procedure PR1(Var Ptr: Pointer);
begin
Ptr:= nil;
end;
var Ptr1:P1;
Ptr2:P2;
Procedure some;
begin
PR1(Pointer(ptr1));
PR1(Pointer(ptr2));
end;
Re: Всъщност пробвай това :))
i za da ne se utrepesh ot pisane:
type _p=pointer;
...
...
..
PR1(_p(ptr1));
mojesh da minesh na clasowe - tam moje ama stawa malko po-golqmo w pametta
type _p=pointer;
...
...
..
PR1(_p(ptr1));
mojesh da minesh na clasowe - tam moje ama stawa malko po-golqmo w pametta