Öröklési öröklés
Öröklődés C ++
öröklés
- Öröklési - olyan mechanizmust megszerzésének új osztály alapján a meglévőt. Osztályú meglévő lehet módosítani vagy megváltoztatni, hogy hozzon létre egy új osztályt.
- emberek
- Student munkás
- Tanár Alkalmazott Kórház zaochnikov
- shtatnik rész-
- A hierarchikus felépítése öröklési
Miért kell örökölni
osztály class_name. spisok_bazovyh_klassov
Újrafelhasználása kód - használja az osztály új objektumok létrehozásához, és mint a bázis létrehozásával egy új osztály
Az építés egy osztály hierarchia lehetővé teszi, hogy végezze el a rendelési osztályok
Amikor örökli, akkor bontsa az osztály jellemzőinek szűkítse le őket, megváltoztatják vagy megsemmisíteni
Access öröklés
Access öröklés
egyszerű öröklés
Nem örökletes:
- konstruktőrök;
- destruktorok;
- Felülírt működés új;
- Felülírt hozzárendelés;
- barátságos
egyszerű öröklés
Az osztály egy alap osztály
Procedure Call konstruktőrök - a bázis osztály (első, második, harmadik)
Az eljárást hívó destruktorok - fordított sorrendben
Szabályzata egymást követő különböző módszerek
Konstruktor nem öröklődik, így a származtatott osztály kell saját tervezői
Ha a kivitelező a származtatott osztály egy kifejezett felszólítás az alap osztály konstruktora nincs jelen, a kivitelező az alap osztály alapértelmezés
Amikor egy többszintű hierarchia konstruktor hívása kezdődik, a legfelső szinten
Ha egy osztályban egy másik osztály tárgyak, először meg kell hívni a kivitelező az osztály tagjait, majd az osztály konstruktora
Nem örökölte megbízás működését. Ez egyértelműen meg kell határozni a származtatott osztály.
A destruktor nem öröklődnek. Ha egy destruktor egy származtatott osztály nincs megadva, akkor alaptól, és felhívja destruktorok bázis osztályok, és fordított sorrendben a kivitelező hívásokat.
Polimorfizmus. Virtuális függvények
Késői vagy dinamikus kötési
osztály Base
virtuális void print ()
dp -> print (); // dir
p -> print (); // dir
Osztály hierarchia, ami által meghatározott nyilvános öröklés, létrehoz egy rokon szerkezetű felhasználó által definiált típusok, minden tárgy, ami arra utalhat, egy mutatót a kiindulási osztályban. A választás, hogy milyen típusú virtuális függvényhívás függ, hogy milyen típusú objektum, amely valójában (futás közben), irányított mutató helyett egy mutató típusú.
Osztály hierarchia, ami által meghatározott nyilvános öröklés, létrehoz egy rokon szerkezetű felhasználó által definiált típusok, minden tárgy, ami arra utalhat, egy mutatót a kiindulási osztályban. A választás, hogy milyen típusú virtuális függvényhívás függ, hogy milyen típusú objektum, amely valójában (futás közben), irányított mutató helyett egy mutató típusú.
Polimorfizmus. Virtuális függvények
osztály Base
védett: int H, R;
Base (int a, int b): h (a), R (b) <>
virtuális kettős f1 () // V henger
void f2 ()
Absztrakt osztályok tisztán virtuális függvény
Kivonat egy osztály, ahol van legalább egy üres (üres) virtuális függvény.
Tisztán virtuális függvény az úgynevezett komponens, amely a következő definíciót:
virtuális típusú functionName (spisok_formalnyh_parametrov) = 0;
Tisztán virtuális függvény nem csinál semmit, és nem érhető el a hívásokat. Ennek célja - szolgál alapjául helyett funkcióit származtatott osztályokban.
Egy absztrakt osztály csak akkor használható, mint egy alap származtatott osztályok.
Összehasonlítva a hagyományos osztályok, absztrakt osztályok „KORLÁTOZOTT JOGOK”. nevezetesen:
lehetetlen, hogy hozzon létre egy objektumot egy absztrakt osztály;
absztrakt osztály nem lehet meghatározni, hogy milyen típusú a függvény paraméter vagy visszatérő jellegű a függvény értéke;
absztrakt osztály nem használható egy explicit típusú átalakítás; Ugyanakkor, meg tudja határozni a mutatók és hivatkozások egy absztrakt osztály.
absztrakt osztály objektum nem lehet formális paraméter a funkció, de a formális paraméter lehet egy mutatót az absztrakt osztály.
Absztrakt osztályok tisztán virtuális függvény
Absztrakt osztályok és öröklés
osztály Person / Абстрактный класс
többszörös öröklés
Felhívás a bázis osztály konstruktor
Jellemzők többszörös öröklés
Virtuális alaposztályok
Procedure Call destructor virtuális alaposztályok
Hívjon destruktorai - fordított sorrendben