Avatar billede knaste Nybegynder
10. april 2008 - 19:30 Der er 7 kommentarer og
1 løsning

Pointer i procedure.

Hej,

Foelgende procedure skal saette den overgivede boolean variabel
til true.

procedure TForm1.ReadBool(ReadTo: Boolean);
begin
  ReadTo := True;
end;

Hvordan goer man, saa b i denne kode blive aendret, og ikke bare en kopi a b?
Det er vel noget med at b skal overgives som pointer.

b: boolean;
b := false;
ReadBool(b);
//Nu skal b saa vaere true.

Tak paa forhaand!
Avatar billede arne_v Ekspert
10. april 2008 - 19:32 #1
procedure TForm1.ReadBool(var ReadTo: Boolean);

burde vaere nok
Avatar billede hrc Mester
10. april 2008 - 22:51 #2
Det var sørme et af de lette spørgsmål! Du kunne have prøvet Google med eksempelvis søgningen "+delphi +parameter +reference". Det havde resulteret i følgende link der nøje beskriver teknikkerne: http://www.delphibasics.co.uk/Article.asp?Name=Routines

Husk, at man ikke bruger pointere i objektorienteret programmering, men ideelt set kun bruger instanser af klasser, kaldet objekter. At disse så er helt ækvivalente med de gamle pointere er en anden historie.
Avatar billede arne_v Ekspert
11. april 2008 - 02:03 #3
Et svar for var.
Avatar billede arne_v Ekspert
11. april 2008 - 02:04 #4
Nu skal jeg ikke gøre mig klog på OOP i Delphi.

Men i mange andre objekt orienterede sprog skelner man skarpt mellem pointere/referencer
og instanser/objekter.
Avatar billede hrc Mester
11. april 2008 - 09:35 #5
Nu ikke beskeden Arne. Du har været her på fora så længe at du er dets største opslagsværk. Det jeg skriver er vel heller ikke forskelligt fra det du skriver. En instans af en klasse kaldes et objekt. Simplere kan den del vel ikke formuleres?

At man samtidig med indførslen af OOP de facto besluttede at pointere ikke var noget man arbejdede med, mener jeg gælder de fleste programmeringssprog (Mother of all Evil, C++ undtaget).

At instansen bagved er en simpel pointer, kan man sagtens eftergøre vha. typecasting til en; og kigger man på data efter pointeren får man et ret godt billede af hvordan klassen er opbygget.
Avatar billede arne_v Ekspert
12. april 2008 - 04:28 #6
Jeg er helt enig i at:
  instans af klasse = objekt
  reference = forklædt pointer

Det jeg forsøger at forklare er at man (ihvertfald i andre sprog) skelner skarpt mellem
referencen og objektet.

Sådan lidt mere firkantet:
  referencen er de 4 byte som indeholder addressen på objektet
  objektet er de X byte som referencen peger på
Avatar billede arne_v Ekspert
30. august 2008 - 01:26 #7
knaste>

Tid at acceptere svaret ?
Avatar billede knaste Nybegynder
29. september 2008 - 14:32 #8
Tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester