C ++ Dědičnost

C Inheritance



Dědičnost je velmi důležitou vlastností objektově orientovaného programování. Umožňuje programátorovi odvodit třídu z existující třídy. To je velmi užitečné zejména ve velkém složitém projektu, protože to umožňuje programátorovi znovu použít kód.

V tomto článku budeme diskutovat o konceptu dědičnosti v programování v C ++. Pojem funkce friend v C ++ vysvětlíme na pracovních příkladech.







Proč dědičnost?

Dědičnost umožňuje vytvoření nové třídy nebo odvozené třídy z jiné třídy nebo základní třídy. Odvozená třída nebo podřízená třída bude mít všechny funkce nadřazené třídy nebo základní třídy. Kód můžeme znovu použít pomocí dědičnosti.



Typ dědičnosti

Existují různé typy dědičnosti:



  1. Jednoduchá/jednoduchá dědičnost
  2. Hierarchická dědičnost
  3. Víceúrovňová dědičnost
  4. Vícenásobná dědičnost

V tomto článku budeme zvažovat pouze jednoduchou/jedinou dědičnost.





Příklad 1:

Podívejme se nyní na ukázkový program, abychom porozuměli konceptu dědičnosti v C ++. Definovali jsme základní třídu a poté z ní odvodili další třídu. Odvozená třída tedy bude mít funkce (členy a funkce) ze základní třídy.

#zahrnout

pomocí oboru názvů std;

třída Base_Class
{
veřejnost:
int;
prázdnéZobrazit()
{
náklady<< 'Zobrazení základní třídy' <<<<endl;
}

};

třída Derived_Class:public Base_Class
{
veřejnost:
prázdnéukázat()
{
náklady<< „Přehlídka odvozené třídy“ <<endl;
}
};

inthlavní()
{
Derived_Class dc;
DC. = 100;
DC.Zobrazit();
DC.ukázat();

vrátit se 0;
}



Příklad 2:

Toto je další příklad dědičnosti v C ++. V tomto příkladu uvidíme, jak se konstruktéry nazývají při vytváření odvozeného objektu třídy.

Jak vidíte níže, definovali jsme dva konstruktory základní třídy a tři konstruktory odvozené třídy. Z níže uvedeného výstupu si můžete jasně všimnout, že nejprve se volá konstruktor základní třídy, než se zavolá konstruktor odvozené třídy.

#zahrnout
pomocí oboru názvů std;

třída Base_Class
{
veřejnost:
Base_Class()
{
náklady<< 'Base_Class - žádné parametry' <<endl;
}
Base_Class(intX)
{
náklady<< 'Base_Class - Parameters:' <<X<<endl;
}
};

třída Derived_Class:public Base_Class
{
veřejnost:
Derived_Class()
{
náklady<< 'Derived_Class - žádné parametry' <<endl;
}
Derived_Class(inta)
{
náklady<< 'Derived_Class - Parameters:' <<a<<endl;
}
Derived_Class(intX,inta):Base_Class(X)
{
náklady<< 'Param of Derived_Class:' <<a<<endl;
}
};

inthlavní()
{
Derived_Class d(7,19);
}

Příklad 3:

V tomto příkladu uvidíme, jak lze použít objekty odvozené třídy.

Jak vidíte, jsou definovány dvě třídy: Rectangle_Class a Cube_Class. Rectangle_Class je základní třída, ze které je odvozena odvozená třída, tj. Cube_Class. Dědíme tedy funkce z Rectangle_Class do Cube_Class.

Také si můžete všimnout, že Cube_Class dědíme pomocí veřejného řízení přístupu. To znamená, že odvozená třída má přístup ke všem soukromým členům základní třídy.

Deklarovali jsme objekt odvozené třídy a poté volali metody ze základní třídy, tj. SetLength () a setBreadth ().

#zahrnout

pomocí oboru názvů std;

třída Obdélník_třída
{
soukromé:
intdélka;
intšířka;
veřejnost:
Obdélník_třída();
Obdélník_třída(intthe,intb);
Obdélník_třída(Obdélník_třída&r);
intgetLength()
{
vrátit sedélka;
}
intgetBreadth()
{
vrátit sešířka;
}
prázdnésetLength(intthe);
prázdnésetBreadth(intb);
intplocha();
};

třída Cube_Class:public Rectangle_Class
{
soukromé:
intvýška;
veřejnost:
Cube_Class(inth)
{
výška=h;
}
intgetHeight()
{
vrátit sevýška;
}
prázdnésetHeight(inth)
{
výška=h;
}
intobjem()
{
vrátit segetLength()*getBreadth()*výška;
}
};


Obdélník_třída::Obdélník_třída()
{
délka=1;
šířka=1;
}
Obdélník_třída::Obdélník_třída(intthe,intb)
{
délka=the;
šířka=b;
}
Obdélník_třída::Obdélník_třída(Obdélník_třída&r)
{
délka=r.délka;
šířka=r.šířka;
}
prázdnéObdélník_třída::setLength(intthe)
{
délka=the;
}
prázdnéObdélník_třída::setBreadth(intb)
{
šířka=b;
}
intObdélník_třída::plocha()
{
vrátit sedélka*šířka;
}

inthlavní()
{
Cube_Class c(8);
C.setLength(12);
C.setBreadth(9);
náklady<<„Hlasitost je“<<C.objem()<<endl;
}

Závěr:

V tomto článku jsem vysvětlil koncept Dědičnosti v C ++ . C ++ podporuje různé typy dědičnosti včetně vícenásobné dědičnosti (tj. Dědění funkcí z více základních tříd nebo nadřazené třídy). Aby to však bylo jednodušší, uvažoval jsem zde pouze o jediné dědičnosti. Ukázal jsem tři pracovní příklady, abych vysvětlil, jak můžeme použít dědičnost v programování v C ++ a znovu použít kód. Navíc je to velmi užitečná funkce C ++.