Ik kwam zojuist een stukje code tegen waarvan ik niet wist dat het werkte en ik vraag me dan ook af of dat iemand me kan vertellen hoe het werkt?
Stel we hebben een Base en een Derived klasse.
Bovenstaande compileert zonder problemen zonder dat in Base een conversion constructor is geschreven. Het mechanisme werkt ook niet door middel van een conversie constructor. Dit denk ik omdat ik de constructor handmatig heb geschreven private heb gemaakt. Dit maakte geen enkel verschil.
Doet de compiler een simpele memcopy oid van de waarden in het object omdat ze toch in dezelfde volgorde in het geheugen liggen?
De standaard C++ sites hebben me nog niet echt verder geholpen.
Stel we hebben een Base en een Derived klasse.
C++:
1
2
| Derived derived; Base base = derived; |
Bovenstaande compileert zonder problemen zonder dat in Base een conversion constructor is geschreven. Het mechanisme werkt ook niet door middel van een conversie constructor. Dit denk ik omdat ik de constructor handmatig heb geschreven private heb gemaakt. Dit maakte geen enkel verschil.
Doet de compiler een simpele memcopy oid van de waarden in het object omdat ze toch in dezelfde volgorde in het geheugen liggen?
De standaard C++ sites hebben me nog niet echt verder geholpen.