Hvad er skabelonklasse i C ++?

Skabelonklasse, som navnet antyder, er en skabelon til klasser. C ++ giver os en måde, hvor vi kan oprette en klasse, der fungerer som en plan / skabelon til fremtidige klasser. En skabelonklasse vil have generiske variabler og metoder af typen “T”, som senere kan tilpasses til at blive brugt med forskellige datatyper i henhold til kravet.

Definition

I henhold til standarddefinitionen er en skabelonklasse i C ++ en klasse, der giver programmereren mulighed for at arbejde med generiske datatyper. Dette gør det muligt at bruge klassen på mange forskellige datatyper i henhold til kravene uden behov for at blive omskrevet for hver type.

Forståelse af skabelonklasse i C ++

Hvis vi betragter det virkelige eksempel på skabelonklasse for bedre forståelse, kan vi betragte dette som en plan. Hvis en ejendomsmægler designer et township, forbereder han layoutet af lejligheder, der inkluderer de generiske specifikationer som planløsning, placering af døre, vinduer osv. Denne plan kan betragtes som en skabelonklasse, der giver os en generel idé om, hvordan en lejlighed skal se ud fra et større billede. Dette kan bruges til at designe individuelle lejligheder, der kan tilpasses i henhold til ejerens præferencer, der vil være specifikke for denne lejlighed, men den generiske skabelon vil forblive almindelig i hele township.

Skabelonklassen fungerer på lignende linjer. Hvis vi designer en virksomhedsapplikation, vil den have flere enheder, der repræsenterer klasserne. Hver klasse har deres specifikke egenskaber og metoder. Imidlertid kan en skabelon designes, der formår at indsætte disse enheder i databasen. Vi bruger dette eksempel i de kommende sektioner af denne artikel. Men hvis vi ikke bruger skabelonklassen, bliver vi nødt til at skrive individuelle klasser til oprette, hente, opdatere, slette operationer. Imidlertid kan vi ved hjælp af skabelonklassen få dette arbejde udført ved kun at skrive en enkelt klasse og dermed reducere meget tid og fjerne muligheden for en masse overflødige duplikatkoder.

Hvordan gør Template Class i C ++ det lettere at arbejde?

Når man arbejder med en virksomhedsapplikation, er programmørerne oftest overfor et scenarie, hvor programstrukturen bliver kompliceret, når antallet af modelklasser øges. Kompleksiteten bliver yderligere tilføjet, når vi implementerer OOPS-koncepter som arv og polymorfisme. I sådanne scenarier er skabelonklasser meget nyttige, hvor du kan reducere kodelinjerne, du vil skrive til udførelse af nogle operationer, der forbliver de samme på tværs af flere klasser / enheder.

Hvad kan du gøre med skabelonklasse i C ++?

Ved hjælp af skabelonklasser kan man reducere kodekompleksiteten ved at definere generiske operationer, der skal udføres i en skabelonklasse, og bruge denne skabelonklasse med flere datatyper for at få de krævede resultater.

For eksempel, hvis vi skriver et lommeregnerprogram, der har metoder, der tager 2 inputparametre, kan udføre tilføjelse, subtraktion, multiplikation og opdeling og returnere output.

Lad os antage, at det oprindelige krav kun var at udvikle et sådant program til at arbejde med naturlige tal. Til dette formål skrev du bare en klasse med nedenstående skabelon.

Klasse Lommeregner:

(

offentlig:

usigneret Tilføj (usigneret num1, usigneret num2) ()

unsigned Subtract (unsigned num1, unsigned num2) ()

usigneret Multiplikation (usigneret num1, usigneret num2) ()

unsigned Divide (unsigned num1, unsigned num2) ()

);

Nu med kravændringen bliver du bedt om at udføre lignende handlinger for alle heltal (negativ og positiv) såvel som decimaltyper (lang).

Med den nuværende klasse skriver du to yderligere klasser eller redigerer denne klasse for at tilføje lignende funktioner længe og i datatyper også.

Hvis vi imidlertid skulle bruge en skabelonklasse, definerer vi kun 1 skabelonklasse, der fungerer på generisk datatype, og datatypen for returneringsværdi og inputparametre vil blive bestemt ud fra, om en usigneret variabel er bestået, eller hvis du er passerer lang eller int datatype:

Skabelon

Klasse Lommeregner:
(

Offentlig:

T Tilføj (T num1, T num2) ()

T Trækker (T num1, T num2) ()

T Multiplicer (T num1, T num2) ()

T Opdel (T num1, T num2) ()

);

Arbejder med skabelonklasse i C ++

Fra lommeregnereksemplet i ovenstående afsnit kan vi bruge denne generiske klasse i lommeregner i vores hovedfunktion eller ethvert andet område af vores program med forskellige datatyper som nedenfor:

Udelad hoved () (

Langt resultatLang = lommeregner. Tilføj (20, 7, 18, 2);

Int resultInt = Calculator.Tilføj (10, -15);

Ikke-underskrevet resultatUndtegnet = Lommeregner.Tilføj (10, 18);

)

Her bestemmes datatypen T defineret i Generisk klasse baseret på datatypen af ​​inputparametre, der sendes til funktionerne.

Fordele ved skabelonklasse i C ++

De største fordele ved at bruge skabelonklasser er som nedenfor:

  1. Du skal kun definere 1 klasse, der fungerer med forskellige datatyper.
  2. På kompileringstidspunktet genereres forekomster af denne skabelonklasse kun for de datatyper, som skabelonklassen er brugt til i programmet.

For eksempel, hvis vi i ovenstående eksempel kun bruger skabelonklasse med int-datatype, vil kompilatoren oprette en forekomst af kun int-datatypen og dermed spare plads, der ville være blevet brugt ved implementeringer af lange og ikke-underskrevne datatyper, havde vi skrevet individuelle klasser for hver.

  1. Som vi allerede har set, vil oprettelse og brug af en skabelonklasse reducere indsatsen og kodelinjerne for udvikling og vil også reducere kompleksiteten og tiden i fejlsøgning af programmet til eventuelle problemer, da du kun arbejder med 1 klasse.

Påkrævet skabelonklasse i C ++ færdigheder

Oprettelse og brug af skabelonklasser er meget simpelt og kræver ikke, at du har nogen avancerede programmeringsfærdigheder i C ++. Alt hvad du skal gøre er at analysere de klasser, der har fælles funktioner og oprette en skabelonklasse for dem alle.

Hvorfor skal vi bruge en skabelonklasse i C ++?

Vi bør altid prøve at indarbejde skabelonklasser i vores programmer, når vi arbejder med en virksomhedsapplikation, der kan ændres og vokse i fremtiden. Dette vil hjælpe os i fremtiden, når vi arbejder på at udvide funktionaliteterne i programmet, så er vi klar over, at en masse af arbejdet allerede vil blive styret af skabelonklasser, og når applikationen bliver kompleks i løbet af den periode, koden forbliver kompakt og forståelig for alle nye, der ser på programmet.

Hvorfor har vi brug for en skabelonklasse i C ++?

Skabelonklasse fungerer som en beholder, der er meget praktisk, når flere klasser udfører den samme funktion på en lignende måde for forskellige datatyper. Denne container pakker funktionaliteten i en enkelt enhed, der kan bruges til forskellige datatyper i henhold til kravet.

En anden almindelig anvendelse til skabelonklassen kan være, når man ser på at implementere datastrukturer som en linket liste, stabler, køer til understøttelse af forskellige datatyper. Disse datastrukturer vil følge den samme tilgang til push, pop og travers af elementer uanset datatypen og dermed kan bruges ved at implementere en skabelonklasse.

Hvordan denne teknologi vil hjælpe dig i karrierevækst?

At have en god viden og praktiske koncepter som en skabelonklasse er det, der vil adskille dig som programmerer til virksomhedsapplikation fra et program, der kun har lært at programmere og muligvis ikke kan tilpasse sig en stor virksomhedsapplikation med det samme i mest optimeret måde.

Dette giver dig også mulighed for at skrive koder med bedre forståelighed og udvidbarhed.

Konklusion

Når vi arbejder og programmerer på et hvilket som helst sprog, bør vores mål altid være at støtte genanvendeligheden af ​​vores kode ved at gøre den så generisk som muligt og holde den modulopbygget og kompakt. Skabelonklasser er en fantastisk måde at opnå det for klasser med fælles lignende funktioner.

Anbefalet artikel

Dette har været en guide til Hvad er skabelonklasse i C ++ ?. Her har vi drøftet fordelene sammen med behovet for skabelonklasse i C ++. Du kan også se på de følgende artikler for at lære mere -

  1. Skabelon i Java
  2. Webskabeloner HTML
  3. Hvad er ExpressJS?
  4. Hvad er forklarende test?

Kategori: