25. november 2003 - 13:52
Der er
5 kommentarer og 1 løsning
Funktionskald og nedarvning
Jeg har to klasser: class a { public: int getcolor() { return 0; } void draw() { printf("%d", getcolor()); } }; class b : public a { public: b() { } int getcolor() { return 0; } }; a A(); b B(); a.draw() printer 1. Jeg regnede med at b.draw ville printe 0, men den printer 1. Hvordan kan jeg lave om på det. Er jeg tvunget til at lave en draw for hver?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
25. november 2003 - 13:53
#1
rettelse: klasse a's getcolor skulle returnere 1
25. november 2003 - 14:02
#2
erklær getcolor som virtual !
25. november 2003 - 14:03
#3
virtual int getcolor() i både A og B.
25. november 2003 - 14:04
#4
Arne du er en KNAG!!!!
25. november 2003 - 14:05
#5
Det var nok bare at skrive virtual foran getcolor i klasse a
25. november 2003 - 14:22
#6
Det skal nok passe. Jeg skriver bare altid på dem begge.
Kurser inden for grundlæggende programmering