OK, ik heb dus 2 classes (3 eigenlijk, maar laten we het simpel houden).
Nu roep ik bvb:
nu in SchrijfToFile check ik de Grootte() en ga ik daarna naar de baseclase (met CLabelSoort::SchrijfToFile();)
bvb:
Wat ik eigenlijk beoog is dat ik mijn data die in die class zit naar de file schrijf & dan de baseclass oproep, die weer zijn data naar de file schrijft etc...
Dus mijn vraag is 2ledig:
1/ Is dit een goede manier om dit te doen? (ikzelf zet die CLabelSoort:: ... etc in al mijn derived classes)
2/ Nu als ik in CNormaalPakket zit, verwijst Grootte() naar CNormaalPakket, maar als ik dan in 'CLabelSoort::SchrijfToFile()' zit, verwijst Grootte() eveneens naar CNormaalPakket... Hoe kan ik dat oplossen?
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| class CLabelSoort { public: virtual long Grootte() {return 1; } virtual bool SchrijfToFile ( ); ... }; class CNormaalPakket : public CLabelSoort { public: virtual long Grootte() { return 0; } virtual bool SchrijfToFile ( ); ... }; |
Nu roep ik bvb:
C++:
1
2
3
| CNormaalPakket np(ltInfo); if ( np.IsGoedLabel() ) np.SchrijfToFile(); |
nu in SchrijfToFile check ik de Grootte() en ga ik daarna naar de baseclase (met CLabelSoort::SchrijfToFile();)
bvb:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
| bool CNormaalPakket::SchrijfToFile() { [...snip...] if ( !SchrijfHeaderNaarFile( fp, IsType(), Grootte() ) ) return false; if ( fclose(fp) != 0 ) return false; else return CLabelSoort::SchrijfToFile(); } |
Wat ik eigenlijk beoog is dat ik mijn data die in die class zit naar de file schrijf & dan de baseclass oproep, die weer zijn data naar de file schrijft etc...
Dus mijn vraag is 2ledig:
1/ Is dit een goede manier om dit te doen? (ikzelf zet die CLabelSoort:: ... etc in al mijn derived classes)
2/ Nu als ik in CNormaalPakket zit, verwijst Grootte() naar CNormaalPakket, maar als ik dan in 'CLabelSoort::SchrijfToFile()' zit, verwijst Grootte() eveneens naar CNormaalPakket... Hoe kan ik dat oplossen?