1 / 9

Seminář C++

Seminář C++. 5. cvičení Dědičnost. Ing. Jan Mikulka. Co je dědičnost. jedna ze základních vlastností OOP původní bázové třídy – společný základ pro nové odvozené třídy jednoduchá / vícenásobná. Syntaxe dědičnosti. class zakl // bázová třída { int i; public :

Download Presentation

Seminář C++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka

  2. Co je dědičnost • jedna ze základních vlastností OOP • původní bázové třídy – společný základ pro nové odvozené třídy • jednoduchá / vícenásobná

  3. Syntaxe dědičnosti class zakl // bázová třída { int i; public: void nastav_i(int n) {i=n;} int vezmi_i() {return i;} }; class odvozena: public zakl // odvozená třída { int j; // přidána další proměnná public: void nastav_j(int n){j=n;} // přidána další funkce int nasobeni (){return j*vezmi_i();} //přidáno násobení i*j };

  4. Přístupy v dědičnosti

  5. Dědění metod • Konstruktory a destruktory se nedědí, ale při tvorbě odvozené třídy jsou zděděné datové složky inicializovány konstruktorem základní třídy • virtuální metody k přetěžování

  6. Virtuální metody • Slouží jako předpisy pro metody v odvozených třídách • jsou uvozeny klíčovým slovem virtual a v základní třídě nemají definici, pouze deklaraci

  7. Virtuální metody struct bod_1 {double x,y;}; class kres_obj // bázová třída { protected: bod_1 ref_bod; virtual int kresli(); // bude se měnit v odvozených třídách }; class obdelnik: public kres_obj // odvozená třída { protected: bod_1 rohy[4]; virtual int kresli(); // bude se měnit }; class kruznice: public kres_obj // odvozená třída { protected: bod_1 stred; float r; virtual int kresli(); // bude se měnit (nakreslí kružnici) };

  8. Dědičnost ve Windows

  9. Zadání cvičení • Napište třídu Vozidlo, která bude obsahovat datové složky Spotřeba, Počet_kol, a metody pro nastavení/čtení těchto proměnných, dále konstruktor, který vypíše „Tvořím vozidlo.“ • Napište odvozenou třídu Nákladní_vozidlo, která zdědí vše z třídy Vozidlo a dále bude obsahovat datové složky Nosnost, počet náprav, … bude obsahovat konstruktor, který vypíše „Tvořím nákladní vozidlo.“ • Napište odvozenou třídu Osobní_vozidlo, která zdědí vše z třídy Vozidlo a dále bude obsahovat datové složky klimatizace, rádio, … Bude obsahovat konstruktor, který vypíše „Tvořím osobní vozidlo.“ • V hlavním programu vytvořte pole instancí osobních a nákladních vozidel a pomocí metod nastavte jednotlivé datové položky • program umístěte do samostatného hlavičkového souboru, nakreslete vývojový diagram • použití nového „cout <<“ místo „printf()“ • použití new a delete • bodování: funkce (1 bod), rychlost (1 bod), stabilita a délka prog. (1 bod), implementace v hl. souboru (1 bod)

More Related