Előnyök sablon

sablonokat lehet használni a következő feladatokat.

Létrehozása típusbiztos gyűjteményosztályt (például stack), amely együtt tud működni bármilyen típusú adatot.

Pótlólagos típusellenőrzés funkciókat, amelyek egyébként egy pointert kísér.

Kapszulázást csoportok felülbírálja szereplők magatartásának megváltoztatására típusú (smart pointerek).

A legtöbb ilyen használati esetek is végre kell hajtani anélkül sablonok, de a sablonok használata számos előnyt biztosít.

Sablonok könnyebb írni. Ez hozta létre egyetlen egyetemes változata egy osztály vagy funkció létrehozása helyett szakterületek kézzel.

Sablonok könnyebben érthető, mivel egy egyszerű és intuitív módon elvont ábrázolása információt típusok.

A sablonok típusú biztonságos. Mivel a típusok, amelyek műveleteket végeznek sablonok ismert fordítási időben, a fordító tudja végrehajtani típusellenőrzés előtt hiba történik.

További információkért tekintse meg a következő szakaszok .:

Az alábbiakban felsorolunk néhány probléma a makrót.

nincs mód a fordító, hogy ellenőrizze, hogy a makró paraméterei - kompatibilis típusokat. Makró nélkül, bármilyen típusú speciális vizsgálatok.

A paraméterek i és j kétszer értékeljük. Például, ha a paraméterek változó növekmény postfix, a növekmény kétszer hajtjuk végre.

Mivel a makrók -re előfeldolgozó fordító hibaüzenetet fog kapcsolódni Macro, nem nagyon meghatározása a makró. Ezen túlmenően, a makró jelenik meg kibővített formában során hibakeresés.

A beállított funkciók, amelyek jelenleg megvalósítható null pointer valósítható sablonok segítségével. Null pointerek gyakran használják, hogy a funkciók a műveleteket végrehajtó egy ismeretlen típusú adatokat. Ha az üres pointerek fordító nem tud különbséget tenni a különböző típusú és így elvégezni típusellenőrzés vagy egy sajátos viselkedést bármely típusú, például, hogy meghatározott típusú szereplők, operátor túlterhelés, a tervezők vagy a destruktor.

Munka sablonokat hozhat létre függvényeket és osztályokat, dolgozó begépelt adatokat. Annak megállapítására, hogy milyen típusú minta úgy néz ki absztrahált. Azonban abban az időben a válogatás, a fordító létrehoz egy külön változata a funkció az egyes meghatározott típusú. Ez lehetővé teszi, hogy a fordító, hogy feldolgozza a sablont osztályok és függvények mintha műveletek végrehajtása az adott típusú. A sablonok használata lehetővé teszi azt is, hogy növeljék a világosság a kódot, mivel nem szükséges, hogy hozzon létre speciális kivitelben a komplex típusok, mint a struktúrák.

C ++ lehetővé teszi, hogy az intelligens mutató osztályok, amelyek magukban foglalják a mutatók, és felülírja mutatóműveletek, hogy új funkciók műveleteket mutató. Sablonok lehetővé teszik, hogy univerzális átalakító lehetővé teszi gyakorlatilag bármilyen típusú mutatók.

A következő kód egy egyszerű hivatkozás számláló szemétgyűjtő. Sablon osztály Ptr végrehajtja szemétgyűjtő mutatót tartalmaz, amely osztályban, amit RefCount.

Osztályok RefCount és a PTR Ez egy egyszerű megoldás, hogy a szemétgyűjtő minden osztályban, hogy engedheti meg magának a terhelést öröklési int példányait RefCount. Felhívjuk figyelmét, hogy a fő előnye, hogy segítségével a parametrikus osztály, pl Ptr. ahelyett, hogy a generikus osztály, például Ptr. Ez egy teljes típus első a biztonság. Az előző kód biztosítja, hogy Ptr Ezt fel lehet használni szinte bárhol, amely felhasználja T *; éppen ellenkezőleg, az egyetemes osztály Ptr adna csak implicit konverzió void *.

Vegyük például egy osztály, amely létrehozásához használt és feldolgozási eljárásban kapott gyűjtése szemetet fájlokat, jelek, vonalak, és így tovább. A class template Ptr a fordító létrehoz egy sablon osztályokat Ptr. ptr. ptr és így tovább, és a hozzájuk tartozó műveleteknek: Ptr::

Ptr (). ptr:: operátor fájl * (). ptr::

Ptr (). ptr:: operátor string * (), és így tovább.

Sablonok - egy kényelmes módja a gyűjtemény osztályok.

Gyűjtemény MyStack egy egyszerű végrehajtását a verem. Két sablonparaméterrel, T és i. meghatározza az elemek típusát a verem és a maximális elemek száma a veremben. Tag funkciók push és pop hozzá, és távolítsa el az elemeket a veremben. A növekvő halom alja felé.

Műsor: öröklött Védett

Volt ez az oldal hasznos? Igen Nem

1500 karakter van még hátra

Köszönjük! Köszönöm a véleményt. Az Ön véleménye nagyon fontos számunkra.

fejlesztési központok

közösség

Lépjen kapcsolatba velünk

Kapcsolódó cikkek