60 likes | 231 Views
Drawable. Persistent. position bitmap. storage_file_name object_id. draw() move(). save() restore(). Box. Circle. Line. length width. end_a end_b. center radius. Persistent_drawable. Multipelt arv. ios. format_state condition_state locale streambuf.
E N D
Drawable Persistent position bitmap storage_file_name object_id draw() move() save() restore() Box Circle Line length width end_a end_b center radius Persistent_drawable Multipelt arv CD5250 OOP med C++ Mats Medin MDH/IDT
ios format_state condition_state locale streambuf Multipelt arv: iostream (inte riktigt rätt) class ostream : public ios class istream : public ios ostream istream gcount xxx ifstream ofstream iostream yyy class iostream : public istream, public ostream fstream CD5250 OOP med C++ Mats Medin MDH/IDT
format_state condition_state locale streambuf format_state condition_state locale streambuf format_state condition_state locale streambuf format_state condition_state locale streambuf gcount xxx xxx yyy gcount iostream object??? istream object ostream object över- klass- delen från ios över- klass- delen från ios från istream ostreams “egen” underklassbit istreams “egen” underklassbit från ostream Kompileringsfel - dock endast vid försök att accessa de dubblerade delarna! iostreams “egen” underklassbit CD5250 OOP med C++ Mats Medin MDH/IDT
ios format_state condition_state locale streambuf Multipelt arv: iostream med virtual inheritance class ostream : virtual public ios class istream : virtual public ios ostream istream gcount xxx ifstream ofstream iostream yyy class iostream : public istream, public ostream fstream CD5250 OOP med C++ Mats Medin MDH/IDT
format_state condition_state locale streambuf gcount xxx yyy iostreams “egen” underklassbit Virtual inheritance iostream object en enda ios-bit! virtuell basklass från istream från ostream CD5250 OOP med C++ Mats Medin MDH/IDT
multipelt Konstruktor-destruktor och arv När ett objekt skapas sker följande: 1. Konstruktorn för ev. överklass anropas alltid först. 2. Konstruktorerna för den aktuella klassens datamedlemmar anropas 3. Satserna i den aktuella klassens konstruktor exekveras. i deriveringslistans turordning När ett objekt tas bort sker följande: 1. Satserna i den aktuella klassens destruktor exekveras. 2. Destruktorerna för den aktuella klassens datamedlemmar anropas 3. Destruktorn för ev. överklass anropas. baklänges enligt deriveringslistans turordning CD5250 OOP med C++ Mats Medin MDH/IDT