Co je třída šablon v C ++?

Třída Template, jak název napovídá, je Šablona pro třídy. C ++ nám poskytuje způsob, jak můžeme vytvořit třídu, která bude sloužit jako plán / šablona pro budoucí třídy. Třída šablony bude mít obecné proměnné a metody typu „T“, které mohou být později přizpůsobeny pro použití s ​​různými typy dat podle požadavku.

Definice

Podle standardní definice je třída šablony v C ++ třída, která umožňuje programátorovi pracovat s obecnými datovými typy. To umožňuje třídu použít podle mnoha různých typů dat podle požadavků, aniž by bylo nutné je přepisovat pro každý typ.

Porozumění třídě šablon v C ++

Pokud budeme pro lepší pochopení považovat příklad třídy šablon v reálném světě, můžeme to považovat za plán. Pokud realitní makléř navrhuje městskou čtvrť, připraví rozvržení bytů, které obsahují obecné specifikace, jako je půdorys, umístění dveří, okna atd. Tento plán lze považovat za třídu šablon, která nám poskytne obecnou představa, jak bude byt vypadat z většího obrázku. To lze použít k navrhování jednotlivých bytů, které lze přizpůsobit podle preferencí majitele, které budou specifické pro daný byt, ale obecná šablona zůstane společná v celé obci.

Třída šablony pracuje na podobných řádcích. Pokud navrhujeme podnikovou aplikaci, bude mít více entit, které budou reprezentovat třídy. Každá třída bude mít své specifické vlastnosti a metody. Lze však navrhnout šablonu, která dokáže tyto entity vložit do databáze. Tento příklad použijeme v následujících částech tohoto článku. Pokud ale nepoužijeme třídu šablon, budeme muset psát jednotlivé třídy pro operace Create, Retrieve, Update, Delete. Pomocí třídy šablon však můžeme tuto práci provést psaním pouze jedné třídy, čímž se sníží mnoho času a odstraní se možnost velkého množství redundantního duplikátu kódu.

Jak usnadňuje třída šablon v C ++ práci?

Při práci na podnikové aplikaci se programátoři většinou potýkají se scénářem, ve kterém se programová struktura komplikuje se zvyšujícím se počtem tříd modelů. Složitost se dále zvyšuje, když implementujeme koncepty OOPS, jako je dědičnost a polymorfismus. V takových scénářích se velmi hodí třídy šablon, ve kterých můžete omezit řádky kódu, které chcete psát, pro provádění některých operací, které zůstanou stejné u více tříd / entit.

Co můžete dělat se třídou šablon v C ++?

Pomocí tříd šablon lze snížit složitost kódu definováním obecných operací, které mají být provedeny ve třídě šablon, a pomocí této třídy šablon s více datovými typy získat požadované výsledky.

Například, pokud píšeme program kalkulačky, který bude mít metody, které vezmou 2 vstupní parametry, může provádět sčítání, odčítání, násobení a dělení a vrací nám výstup.

Předpokládejme, že původním požadavkem bylo jen vyvinout takový program, který bude pracovat s přirozenými čísly. Za tímto účelem jste právě napsali třídu s níže uvedenou šablonou.

Kalkulačka třídy:

(

veřejnost:

unsigned Add (unsigned num1, unsigned num2) ()

nepodepsaný odečet (nepodepsané číslo 1, nepodepsané číslo 2) ()

bez znaménka Násobek (nepodepsané číslo 1, nepodepsané číslo 2) ()

unsigned Divide (unsigned num1, unsigned num2) ()

);

Nyní se změnou požadavku budete vyzváni, abyste provedli podobné operace pro všechna celá čísla (negativní i pozitivní) i pro desetinné typy (dlouhé).

Se současnou třídou napíšete dvě další třídy nebo upravíte tuto třídu, abyste přidali podobné funkce jak dlouho, tak do datových typů.

Pokud bychom však měli použít třídu šablon, budeme definovat pouze 1 třídu šablon, která bude pracovat na obecném datovém typu a datový typ návratové hodnoty a vstupní parametry budou určeny na základě toho, zda je předána nepodepsaná proměnná nebo zda jste předávání typu dat typu long nebo int:

Šablona

Kalkulačka třídy:
(

Veřejnost:

T Přidat (T num1, T num2) ()

T odečíst (T num1, T num2) ()

T násobit (T num1, T num2) ()

T Divide (T num1, T num2) ()

);

Práce se třídou šablon v C ++

Z příkladu Kalkulačky ve výše uvedené části můžeme tuto generickou třídu Kalkulačky použít v naší hlavní funkci nebo v jakékoli jiné oblasti našeho programu s různými typy dat, jak je uvedeno níže:

Void main () (

Long resultLong = Calculator.Add (20.7, 18.2);

Int resultInt = Calculator.Add (10, -15);

Unsigned resultUnsigned = Calculator.Add (10, 18);

)

Zde bude datový typ T definovaný v Generické třídě určen na základě datového typu vstupních parametrů předávaných funkcím.

Výhody třídy šablon v C ++

Hlavní výhody použití tříd šablon jsou následující:

  1. Musíte definovat pouze 1 třídu, která bude pracovat s různými typy dat.
  2. V době kompilace je tato třída šablony generována pouze pro ty typy dat, pro které byla v programu použita třída šablony.

Pokud například ve výše uvedeném příkladu používáme pouze třídu šablon s datovým typem int, kompilátor vytvoří instanci pouze datového typu int, a tak ušetří místo, které by bylo využito implementacemi datových typů Long a Unsigned, kdybychom napsali individuální třídy pro každého.

  1. Jak jsme již viděli, vytvoření a použití třídy šablon sníží úsilí a linie kódu pro vývoj a také sníží složitost a čas při ladění programu pro jakékoli problémy, protože pracujete pouze s 1 třídou.

Požadovaná třída šablon v C ++ dovednostech

Vytváření a používání tříd šablon je velmi jednoduché a nevyžaduje, abyste měli nějaké pokročilé programovací dovednosti v C ++. Vše, co musíte udělat, je analyzovat třídy, které budou mít společné funkce, a vytvořit třídu šablon pro všechny z nich.

Proč bychom měli používat třídu šablon v C ++?

Při práci na podnikové aplikaci, která se může v budoucnu změnit a růst, bychom se měli vždy snažit začlenit třídy šablon do našich programů. To nám v budoucnu pomůže, když pracujeme na rozšíření funkčnosti programu, pak si uvědomujeme, že spousta práce bude již řízena třídami šablon a když se aplikace stává složitější v průběhu času, kód zůstane kompaktní. a srozumitelné pro každého, kdo se na tento program dívá.

Proč potřebujeme třídu šablon v C ++?

Třída šablon funguje jako kontejner, který je velmi užitečný, když více tříd bude provádět stejnou funkci stejným způsobem pro různé typy dat. Tento kontejner zabalí funkčnost do jediné entity, kterou lze podle požadavku využít pro různé typy dat.

Dalším běžným využitím třídy šablon může být při implementaci datových struktur, jako je propojený seznam, hromádky, fronty pro podporu různých typů dat. Tyto datové struktury budou postupovat stejným způsobem pro tlačení, pop a procházení prvků bez ohledu na typ dat, a proto mohou být použity implementací třídy šablony.

Jak vám tato technologie pomůže při růstu kariéry?

Mít dobré znalosti a praktické koncepty, jako je třída šablon, je to, co vás oddělí jako programátora pro podnikové aplikace od programu, který se naučil programovat a nemusí být schopen se ihned přizpůsobit velké podnikové aplikaci. nejoptimálnějším způsobem.

To vám také umožní psát kódy s lepší srozumitelností a rozšiřitelností.

Závěr

Při práci a programování v jakémkoli jazyce by naším cílem mělo být vždy podporovat opakovatelnost našeho kódu tím, že bude co nejobecnější a bude jej udržovat modulární a kompaktní. Třídy šablon jsou skvělým způsobem, jak toho dosáhnout u tříd se společnými podobnými funkcemi.

Doporučený článek

Toto byl průvodce Co je třída šablon v C ++ ?. Zde jsme diskutovali výhody spolu s potřebou třídy šablon v C ++. Další informace naleznete také v následujících článcích -

  1. Šablona v Javě
  2. Webové šablony HTML
  3. Co je to ExpressJS?
  4. Co je průzkumné testování?

Kategorie: