Какво представлява класът на шаблоните в C ++?

Класът на шаблони, както подсказва името, е шаблон за класове. C ++ ни предоставя начин, по който можем да създадем клас, който да служи като план / шаблон за бъдещи класове. Шаблонният клас ще има общи променливи и методи от тип “T”, които по-късно могат да бъдат персонализирани, за да се използват с различни типове данни според изискването.

дефиниция

Съгласно стандартната дефиниция, шаблонният клас в C ++ е клас, който позволява на програмиста да работи с общи типове данни. Това позволява класът да се използва за много различни типове данни според изискванията, без да е необходимо да се презаписва за всеки тип.

Разбиране на клас шаблони в C ++

Ако разгледаме примера на реалния свят на клас шаблон за по-добро разбиране, тогава можем да разгледаме това като план. Ако строител на недвижими имоти проектира градче, той подготвя оформлението на апартаментите, които включват общите спецификации като етажен план, поставяне на врати, прозорци и т.н. Този план може да се счита за шаблон от клас, който ще ни даде общ идея как ще изглежда един апартамент от по-голяма картина. Това може да се използва за проектиране на индивидуални апартаменти, които могат да бъдат персонализирани според предпочитанията на собственика, които ще бъдат специфични за този апартамент, но общият шаблон ще остане общ в целия град.

Класът шаблон работи в подобни линии. Ако ние проектираме корпоративно приложение, то ще има множество субекти, които ще представляват класовете. Всеки клас ще има своите специфични свойства и методи. Въпреки това може да бъде създаден шаблон, който ще успее да вмъкне тези единици в базата данни. Ще използваме този пример в следващите раздели на тази статия. Но ако не използваме клас шаблони, тогава ще трябва да напишем отделни класове за операции Създаване, Извличане, Актуализиране, Изтриване. Въпреки това, използвайки клас шаблони, можем да свършим тази работа, като напишем само един клас, което намалява много време и премахва възможността за много излишни дублиращи се кодове.

Как класът шаблони в C ++ прави работата толкова лесна?

Когато работят върху корпоративно приложение, повечето пъти програмистите се сблъскват със сценарий, при който структурата на програмата се усложнява с увеличаването на броя на моделните класове. Сложността се добавя допълнително, когато внедряваме OOPS концепции като Наследяване и Полиморфизъм. При такива сценарии класовете на шаблони са много удобни, в които можете да намалите редовете от код, които искате да напишете, за извършване на някои операции, които ще останат същите в множество класове / образувания.

Какво можете да направите с клас шаблони в C ++?

С помощта на шаблонови класове човек може да намали сложността на кода, като дефинира генерични операции, които да се извършват в клас шаблон и да се използва този клас шаблон с множество типове данни, за да се получат необходимите резултати.

Например, ако пишем програма за калкулатор, която ще има методи, които приемат 2 входни параметъра, може да извърши събиране, изваждане, умножение и деление и да ни върне изхода.

Нека приемем, че първоначалното изискване е било само да се разработи такава програма, която да работи с естествени числа. За целта току-що написахте клас с шаблона по-долу.

Клас Калкулатор:

(

публичния:

неподписан Add (неподписан num1, unsigned num2) ()

неподписано изваждане (неподписано число1, неподписано число2) ()

неподписано Умножение (неподписано число1, неподписано число2) ()

неподписано разделяне (неподписано число1, неподписано число2) ()

);

Сега с промяната на изискването, от вас се изисква да извършите подобни операции за всички цели числа (отрицателни и положителни), както и десетични типове (дълги).

С текущия клас ще напишете два допълнителни класа или ще редактирате този клас, за да добавите подобни функции както за дълги, така и за типове данни.

Ако обаче използваме клас шаблон, ние ще дефинираме само 1 клас шаблон, който ще работи върху общ тип данни и типът данни за връщащата се стойност и входните параметри ще бъдат определени въз основа на това дали е предадена неподписана променлива или ако сте преминаване на дълъг или int тип данни:

Шаблон

Клас Калкулатор:
(

Публично:

T Добавяне (T num1, T num2) ()

T изваждане (T num1, T num2) ()

T Умножете (T num1, T num2) ()

T Разделяне (T num1, T num2) ()

);

Работа с клас шаблони в C ++

От примера за калкулатора в горния раздел можем да използваме този общ клас на калкулатора в основната ни функция или във всяка друга област на нашата програма с различни типове данни, както е посочено по-долу:

Невалиден основен () (

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

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

Неподписан резултатUnsigned = Calculator.Add (10, 18);

)

Тук типът данни на Т, дефиниран в клас Generic, ще бъде определен въз основа на типа данни на входните параметри, предадени на функциите.

Предимства на шаблонен клас в C ++

Основните предимства на използването на шаблонови класове са както следва:

  1. Трябва да дефинирате само 1 клас, който ще работи с различни типове данни.
  2. По време на компилиране, случаите този клас шаблон се генерира само за онези типове данни, за които шаблонният клас е използван в програмата.

Например, ако в горния пример използваме само клас клас шаблони с тип данни int, тогава компилаторът ще създаде екземпляр само от типа int тип данни, следователно спестява пространство, което би било използвано от реализации на дълги и неподписани типове данни, ако писахме индивидуални класове за всеки.

  1. Както вече видяхме, създаването и използването на шаблон на клас ще намали усилията и редовете на кода за разработка и също така ще намали сложността и времето при отстраняване на грешки в програмата за всякакви проблеми, тъй като работите само с 1 клас.

Необходим клас шаблони в C ++ умения

Създаването и използването на шаблонови класове е много просто и не изисква да имате усъвършенствани умения за програмиране в C ++. Всичко, което трябва да направите, е да анализирате класовете, които ще имат общи функции и да създадете шаблон от клас за всички тях.

Защо трябва да използваме клас шаблон в C ++?

Винаги трябва да се опитваме да включим шаблонови класове в нашите програми, когато работим върху корпоративно приложение, което може да се променя и да расте в бъдеще. Това ще ни помогне в бъдеще, когато работим за разширяване на функционалностите на програмата, тогава осъзнаваме, че голяма част от работата вече ще се управлява от шаблонови класове и когато приложението стане сложно през определен период от време, кодът ще остане компактен и разбираемо за всеки нов, който търси в програмата.

Защо се нуждаем от клас шаблони в C ++?

Класът шаблони работи като контейнер, който идва много удобен, когато множество класове ще изпълняват една и съща функция по подобен начин за различни типове данни. Този контейнер ще обвие функционалността в едно цяло, което може да се използва за различни типове данни според изискването.

Друга често срещана употреба за шаблонен клас може да бъде, когато търсим да реализираме структури от данни като свързан списък, стекове, опашки за поддържане на различни типове данни. Тези структури от данни ще следват същия подход за избутване, изскачане и преместване на елементи, независимо от типа на данните и следователно могат да бъдат използвани чрез прилагане на шаблон на клас.

Как тази технология ще ви помогне в кариерния растеж?

Притежаването на добри познания и практически понятия като клас шаблон е това, което ще ви отдели като програмист за корпоративно приложение от програма, която само се е научила да програмира и може да не е в състояние да се адаптира към голямо предприятие веднага в най-оптимизиран начин.

Това също ще ви позволи да пишете кодове с по-добра разбираемост и разширяемост.

заключение

Когато работим и програмираме на който и да е език, целта ни винаги трябва да бъде да подкрепим повторното използване на нашия код, като го направим възможно най-общ, запазвайки го модулен и компактен. Класовете на шаблони са чудесен начин да се постигне това за класове с общи подобни функции.

Препоръчителен член

Това е ръководство за Какво е шаблонен клас в C ++ ?. Тук сме обсъдили предимствата, заедно с необходимостта от клас на шаблони в C ++. Можете също да разгледате следните статии, за да научите повече -

  1. Шаблон в Java
  2. Уеб шаблони HTML
  3. Какво е ExpressJS?
  4. Какво е проучвателно тестване?