Wat is Template Class in C ++?

Sjabloonklasse zoals de naam al doet vermoeden is een sjabloon voor klassen. C ++ biedt ons een manier waarop we een klasse kunnen maken die zal dienen als een blauwdruk / sjabloon voor toekomstige klassen. Een sjabloonklasse heeft generieke variabelen en methoden van het type "T" die later kunnen worden aangepast om te worden gebruikt met verschillende gegevenstypen volgens de vereiste.

Definitie

Volgens de standaarddefinitie is een sjabloonklasse in C ++ een klasse waarmee de programmeur met generieke gegevenstypen kan werken. Hierdoor kan de klasse volgens de vereisten op veel verschillende gegevenstypen worden gebruikt zonder dat voor elk type opnieuw moet worden geschreven.

Sjabloonklasse begrijpen in C ++

Als we het echte voorbeeld van sjabloonklasse voor een beter begrip beschouwen, kunnen we dit als een blauwdruk beschouwen. Als een onroerendgoedbouwer een gemeente ontwerpt, bereidt hij de indeling van appartementen voor met de generieke specificaties zoals plattegrond, plaatsing van deuren, ramen, enz. Deze blauwdruk kan worden beschouwd als een sjabloonklasse die ons een algemene beschrijving geeft idee van hoe een appartement eruit gaat zien vanuit een groter beeld. Dit kan worden gebruikt om individuele appartementen te ontwerpen die kunnen worden aangepast volgens de voorkeuren van de eigenaar die specifiek zijn voor dat appartement, maar de generieke sjabloon blijft gewoon in de hele gemeente.

De sjabloonklasse werkt op vergelijkbare lijnen. Als we een bedrijfstoepassing ontwerpen, heeft deze meerdere entiteiten die de klassen vertegenwoordigen. Elke klasse heeft zijn specifieke eigenschappen en methoden. Er kan echter een sjabloon worden ontworpen waarmee deze entiteiten in de database kunnen worden ingevoegd. We zullen dit voorbeeld in de komende secties van dit artikel gebruiken. Maar als we de sjabloonklasse niet gebruiken, moeten we afzonderlijke klassen schrijven voor bewerkingen Maken, Ophalen, Bijwerken, Verwijderen. Door de sjabloonklasse te gebruiken, kunnen we dit werk echter doen door slechts een enkele klasse te schrijven, waardoor veel tijd wordt bespaard en de mogelijkheid van veel overbodige dubbele code wordt verwijderd.

Hoe maakt Template Class in C ++ werken zo gemakkelijk?

Bij het werken aan een bedrijfstoepassing worden de programmeurs meestal geconfronteerd met een scenario waarin de programmastructuur gecompliceerder wordt naarmate het aantal modelklassen toeneemt. De complexiteit wordt nog groter wanneer we de OOPS-concepten zoals overerving en polymorfisme implementeren. In dergelijke scenario's zijn sjabloonklassen erg handig, waarin u de coderegels kunt verminderen die u wilt schrijven voor het uitvoeren van enkele bewerkingen die hetzelfde blijven voor meerdere klassen / entiteiten.

Wat kunt u doen met Template Class in C ++?

Met behulp van sjabloonklassen kan men de complexiteit van de code verminderen door generieke bewerkingen te definiëren die in een sjabloonklasse moeten worden uitgevoerd en deze sjabloonklasse met meerdere gegevenstypen gebruiken om de vereiste resultaten te verkrijgen.

Als we bijvoorbeeld een rekenmachineprogramma schrijven dat methoden heeft waarvoor 2 invoerparameters nodig zijn, optellen, aftrekken, vermenigvuldigen en delen kunnen uitvoeren en ons de uitvoer retourneren.

Laten we aannemen dat de oorspronkelijke vereiste was om alleen een dergelijk programma te ontwikkelen om met natuurlijke getallen te werken. Voor dit doel heb je zojuist een klas geschreven met de onderstaande sjabloon.

Klasse Calculator:

(

openbaar:

unsigned Add (unsigned num1, unsigned num2) ()

unsigned Aftrekken (unsigned num1, unsigned num2) ()

unsigned Multiply (unsigned num1, unsigned num2) ()

unsigned Divide (unsigned num1, unsigned num2) ()

);

Nu met de wijziging van de vereiste, wordt u gevraagd vergelijkbare bewerkingen uit te voeren voor alle gehele getallen (negatief en positief) en voor decimale typen (lang).

Met de huidige klasse schrijft u twee extra klassen of bewerkt u deze klasse om soortgelijke functies voor lange en in gegevenstypen toe te voegen.

Als we echter een sjabloonklasse zouden gebruiken, definiëren we slechts 1 sjabloonklasse die werkt op generiek gegevenstype en wordt het gegevenstype van de retourwaarde en invoerparameters bepaald op basis van het feit of een niet-ondertekende variabele is doorgegeven of dat u lang of int gegevenstype passeren:

Sjabloon

Klasse Calculator:
(

Openbaar:

T Toevoegen (T num1, T num2) ()

T Aftrekken (T num1, T num2) ()

T vermenigvuldigen (T num1, T num2) ()

T Divide (T num1, T num2) ()

);

Werken met Template Class in C ++

Uit het Calculator-voorbeeld in de bovenstaande sectie, kunnen we deze generieke klasse Calculator gebruiken in onze hoofdfunctie of een ander deel van ons programma met verschillende gegevenstypen zoals hieronder:

Void main () (

Lang resultaatLong = Calculator.Add (20.7, 18.2);

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

Niet-ondertekend resultaatUnsigned = Calculator.Add (10, 18);

)

Hier wordt het gegevenstype van T gedefinieerd in de generieke klasse bepaald op basis van het gegevenstype van invoerparameters die aan de functies worden doorgegeven.

Voordelen van Template Class in C ++

De belangrijkste voordelen van het gebruik van sjabloonklassen zijn:

  1. U hoeft slechts 1 klasse te definiëren die met verschillende gegevenstypen werkt.
  2. Tijdens het compileren wordt deze sjabloonklasse alleen gegenereerd voor die gegevenstypen waarvoor de sjabloonklasse in het programma is gebruikt.

Als we in het bovenstaande voorbeeld bijvoorbeeld alleen een sjabloonklasse met het gegevenstype int gebruiken, maakt de compiler een instantie van alleen het gegevenstype int, waardoor ruimte wordt bespaard die zou zijn gebruikt door implementaties van lange en niet-ondertekende gegevenstypes als we hadden geschreven individuele klassen voor elk.

  1. Zoals we al hebben gezien, zal het maken en gebruiken van een sjabloonklasse de inspanningen en coderegels voor ontwikkeling verminderen en ook de complexiteit en tijd verminderen bij het opsporen van fouten in het programma voor problemen, aangezien u slechts met 1 klasse werkt.

Vereiste sjabloonklasse in C ++ -vaardigheden

Het maken en gebruiken van sjabloonklassen is heel eenvoudig en vereist geen geavanceerde programmeervaardigheden in C ++. Het enige dat u hoeft te doen, is de klassen met gemeenschappelijke functies te analyseren en voor alle klassen een sjabloonklasse te maken.

Waarom zouden we een Template Class in C ++ gebruiken?

We moeten altijd proberen sjabloonklassen in onze programma's op te nemen wanneer we werken aan een bedrijfstoepassing die in de toekomst kan veranderen en groeien. Dit zal ons in de toekomst helpen wanneer we bezig zijn met het uitbreiden van de functionaliteiten van het programma, dan realiseren we ons dat veel van het werk al wordt beheerd door sjabloonklassen en wanneer de toepassing complex wordt gedurende de periode dat de code nog steeds compact blijft en begrijpelijk voor iedereen die nieuw is in het programma.

Waarom hebben we een sjabloonklasse nodig in C ++?

Sjabloonklasse werkt als een container die erg handig is wanneer meerdere klassen dezelfde functie op dezelfde manier voor verschillende gegevenstypen zullen uitvoeren. Deze container verpakt de functionaliteit in een enkele entiteit die volgens de vereiste kan worden gebruikt voor verschillende gegevenstypen.

Een ander veelgebruikt gebruik voor de sjabloonklasse kan zijn bij het zoeken naar gegevensstructuren zoals een gekoppelde lijst, stapels, wachtrijen voor het ondersteunen van verschillende gegevenstypen. Deze gegevensstructuren volgen dezelfde aanpak voor push, pop en doorkruisen van elementen ongeacht het gegevenstype en kunnen daarom worden gebruikt door een sjabloonklasse te implementeren.

Hoe deze technologie u helpt bij de groei van uw carrière?

Een goede kennis en praktische concepten zoals een sjabloonklasse is wat u als programmeur voor bedrijfstoepassingen zal scheiden van een programma dat alleen heeft leren programmeren en zich mogelijk niet meteen kan aanpassen aan een grote bedrijfstoepassing in de meest geoptimaliseerde manier.

Hiermee kunt u ook codes schrijven met een betere begrijpelijkheid en uitbreidbaarheid.

Conclusie

Bij het werken en programmeren in elke taal, moet ons doel altijd zijn om de herbruikbaarheid van onze code te ondersteunen door deze zo generiek mogelijk te maken en modulair en compact te houden. De sjabloonklassen zijn een geweldige manier om dat te bereiken voor klassen met veel voorkomende vergelijkbare functies.

Aanbevolen artikel

Dit is een handleiding geweest voor Wat is Template Class in C ++ ?. Hier hebben we de voordelen besproken, samen met de noodzaak van Template Class in C ++. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Sjabloon in Java
  2. Websjablonen HTML
  3. Wat is ExpressJS?
  4. Wat is verkennend testen?