15. november 2003 - 22:50Der er
10 kommentarer og 1 løsning
Overskrivning af metode ved nedarvning!
Hvis jeg har en klasse der indeholder en procedure der hedder Draw?? Og jeg så laver en anden klasse som nedarver fra den første klasse, og denne klasse skal også have en metode der hedder Draw, men denne skal indeholde noget andet kode?? Hvordan "overskriver" jeg den oprindeligt metode?
Erklærer du dem virtual i den første klasse, skulle du netop kunne sige override til dem. Jeg er lidt tøvende med at sige hvordan det præcis skal være, da jeg ikke helt ved hvad du gør og vil.
Hvis draw ikke er virtuel i forvejen så kan du angive JFractal.draw som reintroduce (procedure draw; reintroduce;) hvorved du erstatter den underliggende fra MFraktal.
Havde du derimod MFraktal.draw som virtuel (procedure Draw; virtual;), så ville en nedarvning JFractal.draw se sådan ud (procedure Draw; override;):
procedure JFraktal.draw; begin inherited; // Her kaldes MFraktals draw kode.. end;
Den linie kunne du så kommentere ud, men det ville ikke være pænt og objektorienteret.
I øvrigt er det en defacto standard at private properties er foranstillet med et f. Jeg plejer at skrive det sådan: fXMin, men andre vil have at f'et skal stå med stort Fxmin. Jeg synes min version er lettest læseligt, men det er religion. Jeg vil bare opfordre dig til at vælge en af dem.
Prøv i øvrigt at lave en klasse definition og så tryk på ctrl-skift-c. Så bliver skelettet lavet for dig. Det er en smart lille genvejstast.
Jeg havde fået det til at virke, ud fra det første erikjacobsen skrec! Men det var et yderst tilfredstillende: hrc! Så hvis i begge kunne ligge nogle svar, så i kunne få nogle velfortjente point ville jeg blive glad :)
Fint nok - jeg gav dig bare et link og lidt moralsk støtte ;)
Synes godt om
Ny brugerNybegynder
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.