Kald metode på sub class
Jeg sidder MEGET fast i mit lille problem her.Ok hold lige fast.
Jeg har en klasse XMLHandler som indeholder følgende metoder:
class XMLHandler
{
public:
XMLHandler();
void charData(char *chaCaractersPAR);
void startElement(char *strElementPAR);
void endElement(char *strElementPAR);
};
Fra denne klasse nedarver min anden klasse: XMLHandlerReadOPI
class XMLHandlerReadOPI : public XMLHandler
{
public:
XMLHandlerReadOPI();
void charData(char *chaCaractersPAR);
void startElement(char *strElementPAR);
void endElement(char *strElementPAR);
Parameter *XMLParameters;
};
Jeg sender en pointer til et object af typen XMLHandlerReadOPI til en metode på et object af typen XMLParser:
class XMLParser
{
public:
void setHandler(XMLHandler* xhaHandlerPAR);
void parse(FILE *XMLFile);
private:
XMLHandler* xhaHandler;
};
Metoden som XMLHandlerReadOPI bliver sendt til:
void XMLParser::setHandler(XMLHandler* xhaHandlerPAR)
{
xhaHandler = xhaHandlerPAR;
}
XMLParser objectet kalder startElement, endElement og charData metoderne på XMLHandlerReadOPI, men den kode som bliver kørt er koden fra XMLHandler.
Håber det gav bare lidt mening.
Er der nogen der har en forklaring.
Hvorfor bliver koden på Super-klassen kørt og ikke koden fra Sub-klassen?
