18. august 2002 - 23:31Der er
5 kommentarer og 1 løsning
virtual deklaration ?
Hvad betyder det at jeg deklarerer en funktion som virual i min klasse ? FX: class Allan { private: Allan(double Plastik); ~Allan(); char Olsen[64]; public: virtual int Olsen(int type, DWORD grydeske); };
Hvis jeg opretter 2 variabeler f.eks. : char røvskæg[255]; Allan Guitar; Fylder min Guitar med data, og udfører et reinterpret_cast fra guitar -> røvskæg[255]. Hvordan påvirker 'Olsen metoden' så mit resultat (røvskæg) nu da den er virtuel ?
Virtual = sen binding, dvs. udførsel af den variation af funktionen som er defineret højest oppe i dit klasse-hieraki, *UANSET* hvor langt nede i hierakiet kaldet bliver lavet.
Idden er at man i grundklassen kan udføre en funktion som kun vil kunne implementeres korrekt i de nedarvede klasser - det er det man fortæller med ordet virtual.
Forstil dig en grundklasse til behandling af tal - både reele og komplekse. En Add funktion i denne grundklasse vil ikke kunne implementeres korrekt, da Add jo ikke er det samme for et reelt tal og et komplekst tal. Men man kunne jo godt forestille sig at lave en funktion i grundklassen som fik brug for at Addere to tal - vha. den virtuelle Add metode. Funktionen i grundklassen kan så "kalde" den virtuelle Add - som så vil være en reel tals addering eller en addering af to komplekse tal, alt efter hvilken af de nedarvede klasser man rent faktisk havde instansieret.
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.