Co to jest klasa szablonów w C ++?

Klasa szablonu, jak sama nazwa wskazuje, jest szablonem dla klas. C ++ zapewnia nam sposób, w jaki możemy stworzyć klasę, która będzie służyć jako plan / szablon dla przyszłych klas. Klasa szablonu będzie zawierała ogólne zmienne i metody typu „T”, które można później dostosować do użycia z różnymi typami danych zgodnie z wymaganiami.

Definicja

Zgodnie ze standardową definicją klasa szablonów w C ++ to klasa, która pozwala programiście pracować z ogólnymi typami danych. Dzięki temu klasa może być używana na wielu różnych typach danych zgodnie z wymaganiami, bez potrzeby ponownego zapisywania dla każdego typu.

Zrozumienie klasy szablonów w C ++

Jeśli weźmiemy pod uwagę rzeczywisty przykład klasy szablonów dla lepszego zrozumienia, możemy uznać to za plan. Jeśli budowniczy nieruchomości projektuje miasto, przygotowuje układ mieszkań, który zawiera ogólne specyfikacje, takie jak plan piętra, rozmieszczenie drzwi, okien itp. Ten plan można uznać za klasę szablonów, która da nam ogólny pomysł, jak będzie wyglądać mieszkanie z większego obrazu. Można to wykorzystać do zaprojektowania indywidualnych mieszkań, które można dostosować zgodnie z preferencjami właściciela, które będą specyficzne dla tego mieszkania, ale ogólny szablon pozostanie wspólny dla całej miejscowości.

Klasa szablonów działa na podobnych liniach. Jeśli projektujemy aplikację korporacyjną, będzie ona miała wiele encji, które będą reprezentować klasy. Każda klasa będzie miała swoje specyficzne właściwości i metody. Można jednak zaprojektować szablon, który zdoła wstawić te podmioty do bazy danych. Będziemy używać tego przykładu w kolejnych sekcjach tego artykułu. Ale jeśli nie użyjemy klasy szablonów, będziemy musieli napisać poszczególne klasy dla operacji tworzenia, pobierania, aktualizacji, usuwania. Jednak za pomocą klasy szablonów możemy wykonać tę pracę, pisząc tylko jedną klasę, skracając w ten sposób dużo czasu i eliminując możliwość nadmiarowego duplikatu kodu.

W jaki sposób klasa szablonów w C ++ sprawia, że ​​praca jest tak łatwa?

Podczas pracy nad aplikacją korporacyjną programiści najczęściej spotykają się ze scenariuszem, w którym struktura programu komplikuje się wraz ze wzrostem liczby klas modeli. Złożoność staje się jeszcze większa, gdy wdrażamy koncepcje OOPS, takie jak dziedziczenie i polimorfizm. W takich scenariuszach bardzo przydatne są klasy szablonów, w których można zmniejszyć liczbę wierszy kodu, które chcesz napisać, w celu wykonania niektórych operacji, które pozostaną takie same w wielu klasach / jednostkach.

Co możesz zrobić z klasą szablonów w C ++?

Używając klas szablonów, można zmniejszyć złożoność kodu, definiując ogólne operacje do wykonania w klasie szablonów i używać tej klasy szablonów z wieloma typami danych, aby uzyskać wymagane wyniki.

Na przykład, jeśli piszemy program kalkulacyjny, który będzie miał metody, które przyjmują 2 parametry wejściowe, może wykonywać dodawanie, odejmowanie, mnożenie i dzielenie i zwracać nam dane wyjściowe.

Załóżmy, że początkowym wymogiem było opracowanie takiego programu do pracy z liczbami naturalnymi. W tym celu właśnie napisałeś klasę z poniższym szablonem.

Kalkulator klasowy:

(

publiczny:

niepodpisany Dodaj (niepodpisany num1, niepodpisany num2) ()

unsigned Odejmij (unsigned num1, unsigned num2) ()

unsigned Multiply (unsigned num1, unsigned num2) ()

unsigned Divide (unsigned num1, unsigned num2) ()

);

Teraz wraz ze zmianą wymagań zostaniesz poproszony o wykonanie podobnych operacji dla wszystkich liczb całkowitych (ujemnych i dodatnich) oraz typów dziesiętnych (długich).

W bieżącej klasie napiszesz dwie dodatkowe klasy lub edytujesz tę klasę, aby dodać podobne funkcje na długie i do typów danych.

Jeśli jednak użyjemy klasy szablonów, zdefiniujemy tylko 1 klasę szablonów, która będzie działać na ogólnym typie danych, a typ danych wartości zwracanej i parametry wejściowe zostaną określone na podstawie tego, czy zmienna niepodpisana jest przekazywana, czy jesteś przekazywanie typu danych long lub int:

Szablon

Kalkulator klasowy:
(

Publiczny:

T Dodaj (T num1, T num2) ()

T Odejmij (T num1, T num2) ()

T Mnożenie (T num1, T num2) ()

Dzielenie T (T num1, T num2) ()

);

Praca z klasą szablonów w C ++

Z przykładu Kalkulator w powyższej sekcji, możemy użyć tej ogólnej klasy Kalkulatora w naszej głównej funkcji lub w dowolnym innym obszarze naszego programu z różnymi typami danych, jak poniżej:

Void main () (

Długi wynik Długi = Kalkulator. Dodaj (20, 7, 18, 2);

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

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

)

Tutaj typ danych T zdefiniowany w klasie Generic zostanie określony na podstawie typu danych parametrów wejściowych przekazanych do funkcji.

Zalety klasy szablonów w C ++

Główne zalety korzystania z klas szablonów są następujące:

  1. Musisz zdefiniować tylko 1 klasę, która będzie działać z różnymi typami danych.
  2. W czasie kompilacji instancje ta klasa szablonów jest generowana tylko dla tych typów danych, dla których klasa szablonów była używana w programie.

Na przykład, jeśli w powyższym przykładzie używamy tylko klasy szablonów z typem danych int, to kompilator utworzy instancję tylko typu danych int, co pozwoli zaoszczędzić miejsce, które zostałyby wykorzystane przez implementacje typów danych Long i Unsigned indywidualne klasy dla każdego.

  1. Jak już widzieliśmy, tworzenie i używanie klasy szablonów zmniejszy wysiłek i wiersze kodu do programowania, a także zmniejszy złożoność i czas debugowania programu pod kątem wszelkich problemów, ponieważ pracujesz tylko z 1 klasą.

Wymagana klasa szablonów w umiejętnościach C ++

Tworzenie i używanie klas szablonów jest bardzo proste i nie wymaga żadnych zaawansowanych umiejętności programowania w C ++. Wszystko, co musisz zrobić, to przeanalizować klasy, które będą miały wspólne funkcje i stworzyć dla nich klasę szablonów.

Dlaczego powinniśmy używać klasy szablonów w C ++?

Zawsze powinniśmy starać się włączać klasy szablonów do naszych programów, gdy pracujemy nad aplikacją dla przedsiębiorstw, która może się zmieniać i rozwijać w przyszłości. Pomoże nam to w przyszłości, gdy pracujemy nad rozszerzeniem funkcjonalności programu, wtedy zdajemy sobie sprawę, że wiele pracy będzie już zarządzane przez klasy szablonów, a gdy aplikacja stanie się złożona w czasie, kod pozostanie zwarty i zrozumiałe dla każdego, kto szuka nowego programu.

Dlaczego potrzebujemy klasy szablonów w C ++?

Klasa szablonu działa jako kontener, który jest bardzo przydatny, gdy wiele klas będzie wykonywać tę samą funkcję w podobny sposób dla różnych typów danych. Ten kontener opakowuje funkcjonalność w jedną całość, którą można wykorzystać dla różnych typów danych zgodnie z wymaganiami.

Innym powszechnym zastosowaniem klasy szablonów może być przy wdrażaniu struktur danych, takich jak lista połączona, stosy, kolejki do obsługi różnych typów danych. Te struktury danych będą działać zgodnie z tym samym podejściem do wypychania, popowania i przechodzenia elementów niezależnie od typu danych, a zatem mogą być używane przez implementację klasy szablonów.

W jaki sposób ta technologia pomoże ci w rozwoju kariery?

Posiadanie dobrej wiedzy i praktycznych pojęć, takich jak klasa szablonów, oddzieli Cię jako programistę aplikacji korporacyjnych od programu, który nauczył się jedynie programować i może nie być w stanie dostosować się do dużej aplikacji korporacyjnej od razu w najbardziej zoptymalizowany sposób.

Umożliwi to również pisanie kodów z lepszą zrozumiałością i rozszerzalnością.

Wniosek

Pracując i programując w dowolnym języku, naszym celem zawsze powinno być wspieranie możliwości ponownego użycia naszego kodu poprzez uczynienie go tak ogólnym, jak to możliwe, zachowując modułowość i kompaktowość. Klasy szablonów są świetnym sposobem na osiągnięcie tego dla klas o wspólnych podobnych funkcjach.

Polecany artykuł

To był przewodnik po Czym jest klasa szablonów w C ++ ?. Tutaj omówiliśmy zalety wraz z potrzebą klasy szablonów w C ++. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Szablon w Javie
  2. Szablony stron HTML
  3. Co to jest ExpressJS?
  4. Co to jest badanie eksploracyjne?