Ö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





Felbontás láthatóság

Kapcsolódó cikkek