Hva er malklasse i C ++?

Malklasse som navnet antyder er en mal for klasser. C ++ gir oss en måte der vi kan lage en klasse som vil tjene som en plan / mal for fremtidige klasser. En malklasse vil ha generiske variabler og metoder av typen “T” som senere kan tilpasses for å brukes med forskjellige datatyper i henhold til kravet.

Definisjon

I henhold til standarddefinisjonen er en malklasse i C ++ en klasse som lar programmereren operere med generiske datatyper. Dette gjør at klassen kan brukes på mange forskjellige datatyper i henhold til kravene uten behov for å bli skrevet om for hver type.

Forstå malklassen i C ++

Hvis vi betrakter det virkelige eksemplet på malklasse for bedre forståelse, kan vi betrakte dette som en blåkopi. Hvis en eiendomsbygger designer en township, forbereder han utformingen av leiligheter som inkluderer generiske spesifikasjoner som planløsning, plassering av dører, vinduer, etc. Denne blåkopien kan betraktes som en malklasse som vil gi oss en generell idé om hvordan en leilighet skal se ut fra et større bilde. Dette kan brukes til å designe individuelle leiligheter som kan tilpasses i henhold til eierens preferanser som vil være spesifikke for den leiligheten, men den generiske malen vil forbli vanlig i hele township.

Malklassen fungerer på lignende linjer. Hvis vi designer en bedriftsapplikasjon, vil den ha flere enheter som vil representere klassene. Hver klasse har sine spesifikke egenskaper og metoder. Imidlertid kan en mal utformes som klarer å sette disse enhetene inn i databasen. Vi bruker dette eksemplet i de kommende delene av denne artikkelen. Men hvis vi ikke bruker malklassen, må vi skrive individuelle klasser for opprette, hente, oppdatere, slette operasjoner. Ved å bruke malklassen kan vi imidlertid gjøre dette arbeidet ved å skrive bare en enkelt klasse, og dermed redusere mye tid og fjerne muligheten for mye overflødig duplikatkode.

Hvordan gjør malklassen i C ++ det å jobbe så enkelt?

Når de arbeider med en bedriftsapplikasjon, er det programmene som oftest møter et scenario der programstrukturen blir komplisert når antallet modellklasser øker. Kompleksiteten blir ytterligere lagt til når vi implementerer OOPS-konseptene som Arv og polymorfisme. I slike scenarier er malklasser veldig nyttige der du kan redusere kodelinjene du vil skrive for å utføre noen operasjoner som vil forbli de samme på flere klasser / enheter.

Hva kan du gjøre med malklassen i C ++?

Ved å bruke malklasser kan man redusere kodekompleksiteten ved å definere generiske operasjoner som skal utføres i en malklasse og bruke denne malklassen med flere datatyper for å få de nødvendige resultatene.

For eksempel, hvis vi skriver et kalkulatorprogram som vil ha metoder som tar 2 inngangsparametere, kan utføre addisjon, subtraksjon, multiplikasjon og inndeling og gi oss output.

La oss anta at det opprinnelige kravet var å bare utvikle et slikt program for å arbeide med naturlige tall. For dette formålet skrev du bare en klasse med malen nedenfor.

Klassekalkulator:

(

offentlig:

usignert Legg til (usignert num1, usignert num2) ()

unsigned Subtract (unsigned num1, unsigned num2) ()

unsigned Multiply (unsigned num1, unsigned num2) ()

unsigned Divide (unsigned num1, unsigned num2) ()

);

Nå med endring av krav, blir du bedt om å utføre lignende operasjoner for alle heltall (negativ og positiv) så vel som desimaltyper (lang).

Med den gjeldende klassen vil du skrive to ekstra klasser eller redigere denne klassen for å legge til lignende funksjoner for lenge og i datatyper også.

Imidlertid, hvis vi skulle bruke en malklasse, vil vi bare definere en malklasse som vil fungere på generisk datatype og datatypen for returverdi og inngangsparametere vil bli bestemt ut fra om en usignert variabel er bestått eller om du er passerer lang eller int datatype:

Mal

Klassekalkulator:
(

Offentlig:

T Legg til (T num1, T num2) ()

T Trekk fra (T num1, T num2) ()

T Multipliser (T num1, T num2) ()

T Divide (T num1, T num2) ()

);

Jobber med malklasse i C ++

Fra kalkulatoreksemplet i avsnittet ovenfor, kan vi bruke denne generiske klassen for kalkulator i hovedfunksjonen vår eller et hvilket som helst annet område av vårt program med forskjellige datatyper som nedenfor:

Void main () (

Langt resultat Lang = Kalkulator.Legg til (20, 7, 18, 2);

Int resultInt = Kalkulator.Legg til (10, -15);

Usignert resultatUsignert = Kalkulator. Legg til (10, 18);

)

Her vil datatypen T definert i Generisk klasse bestemmes basert på datatypen for inngangsparametere som er gitt til funksjonene.

Fordeler med malklassen i C ++

De viktigste fordelene ved å bruke malklasser er som nedenfor:

  1. Du må definere bare 1 klasse som skal fungere med forskjellige datatyper.
  2. Ved sammenstillingstid genereres forekomster av denne malklassen bare for de datatypene som malklassen har blitt brukt i programmet for.

Hvis vi for eksempel bare bruker malklasse med int-datatype, vil kompilatoren opprette en forekomst av bare int-datatypen og dermed spare plass som ville blitt brukt ved implementeringer av lange og usignerte datatyper hadde vi skrevet individuelle klasser for hver.

  1. Som vi allerede har sett, vil opprette og bruke en malklasse redusere innsatsen og kodelinjene for utvikling, og vil også redusere kompleksiteten og tiden i feilsøking av programmet for eventuelle problemer, siden du bare jobber med 1 klasse.

Nødvendig malklasse i C ++ ferdigheter

Å lage og bruke malklasser er veldig enkelt og krever ikke at du har noen avanserte programmeringsferdigheter i C ++. Alt du trenger å gjøre er å analysere klassene som har felles funksjoner og lage en malklasse for dem alle.

Hvorfor skal vi bruke en malklasse i C ++?

Vi bør alltid prøve å innlemme malklasser i programmene våre når vi jobber med en bedriftsapplikasjon som kan endres og vokse i fremtiden. Dette vil hjelpe oss i fremtiden når vi jobber med å utvide funksjonalitetene til programmet, så innser vi at mye av arbeidet allerede vil bli administrert av malklasser, og når applikasjonen blir kompleks over en periode vil koden fortsatt være kompakt og forståelig for alle som ser på programmet.

Hvorfor trenger vi en malklasse i C ++?

Malklasse fungerer som en beholder som kommer veldig nyttig når flere klasser skal utføre den samme funksjonen på en lignende måte for forskjellige datatyper. Denne beholderen vil pakke funksjonaliteten i en enkelt enhet som kan brukes til forskjellige datatyper i henhold til kravet.

En annen vanlig bruk for malklassen kan være når du ser etter å implementere datastrukturer som en koblet liste, stabler, køer for å støtte forskjellige datatyper. Disse datastrukturene vil følge den samme tilnærmingen for push, pop og travers av elementer uavhengig av datatype og dermed kan brukes ved å implementere en malklasse.

Hvordan denne teknologien vil hjelpe deg i karriereveksten?

Å ha god kunnskap og praktisk konsepter som en malklasse er det som vil skille deg som programmerer for bedriftsapplikasjon fra et program som bare har lært å programmere og kanskje ikke kan tilpasse seg en stor bedriftsapplikasjon med en gang i mest optimaliserte måten.

Dette vil også tillate deg å skrive koder med bedre forståelighet og utvidbarhet.

Konklusjon

Når du jobber og programmerer på et hvilket som helst språk, bør vårt mål alltid være å støtte gjenbrukbarheten av koden vår ved å gjøre den så generisk som mulig og holde den modulær og kompakt. Malklassene er en flott måte å oppnå det for klasser med vanlige lignende funksjoner.

Anbefalt artikkel

Dette har vært en guide til Hva er malklasse i C ++ ?. Her har vi diskutert fordelene sammen med behovet for malklasse i C ++. Du kan også se på følgende artikler for å lære mer -

  1. Mal i Java
  2. Nettmaler HTML
  3. Hva er ExpressJS?
  4. Hva er utforskende tester?