ПредишенСледващото

шаблони могат да се използват за следните задачи.

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

Добавяне на допълнителни функции проверки на типа, които иначе биха взели указател към анулира.

Капсулирането групи подменя оператори да се промени поведението на типа (умни указатели).

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

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

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

Шаблоните са тип-безопасно. От видовете, за които изпълняват действия шаблони са известни по време на компилация, компилаторът може да изпълнява тип проверка, преди да възникне грешка.

За повече информация, вижте следните раздели .:

-долу са изброени някои проблеми с макроса.

няма начин за компилаторът да се провери, че макро параметри - съвместими типове. Макро разширява, без всякакъв вид специални проверки.

Аз, параметри и Й се оценяват два пъти. Например, ако всеки от параметрите е променливо увеличение Postfix, увеличението се извършва два пъти.

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

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

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

C ++ позволява да създавате интелигентни класове показалеца, които включват указатели и подменя оператори показалеца да се добавят нови функции в операциите с указатели. Шаблоните ви позволяват да създавате универсална обвивка, за да се даде възможност на почти всеки тип указатели.

Следният код показва прост колектор справка броене боклук. Шаблон клас PTR изпълнява показалка събиране на боклука и да е клас, който произлиза от RefCount.

Класове RefCount и PTR Тя осигурява просто решение за събиране на боклук, за който и да е клас, който може да си позволи натоварването върху наследствата INT случаи на RefCount. Моля, имайте предвид, че основното предимство на използване на параметрични клас, например PTR. вместо по-общ клас, например PTR. Той е напълно безопасен вид на първо място. Предишният код, който да гарантира, че PTR Може да се използва почти навсякъде, което използва T *; напротив, универсалната клас PTR ще осигури само имплицитно преобразуване за уриниране *.

Помислете например за един клас, който се използва за създаване и обработка на получената в процеса на събиране на боклук файлове, марки, линии, и така нататък. От PTR клас шаблон компилаторът създава шаблон класове PTR. PTR. PTR и така нататък и функции на своите държави-: PTR::

PTR (). PTR:: оператор на файла * (). PTR::

PTR (). PTR:: String оператор * () и така нататък.

Шаблони - удобен начин за изпълнение на класове колекция.

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

Показване: наследени Защитена

Беше ли ви полезна тази страница? Да Не

напуснали 1500 символа

Благодарим Ви! Благодарим Ви за преглед. Вашето мнение е много важно за нас.

развойни центрове

общност

Свържете се с нас

Свързани статии

Подкрепете проекта - споделете линка, благодаря!