..


Sponzorované odkazy

Přetěžování operátorů new a delete v C + +

Článek napsal Damiano Verda
Strana 1 z 2

Mezi charakteristické rysy jazyka C + +, než jiné programovací jazyky, určitě bychom zjistit možnost rozšíření využití mechanismu i přetížené operátory, kromě funkcí nebo metod třídy.

Stručně řečeno, "přetížení je obecně mechanismus diferenciace funkcí se stejným názvem (a obvykle podobný, ale ne totožný) na základě počtu a druhu dodaných parametrů.
Například jsem definovat dvě funkce tisku, generické (bez parametrů), které tiskne řadu informací předem, a další, ve kterém může uživatel zadat pomocí nastavení parametrů přiměřeně, jaké informace je zájem a proto mají být vytištěny.

Tisk funkce je tedy v tomto případě znovu definovat tak, aby vyhovovaly různým informací poskytnutých uživatelem vstupu. Podobně, C + + umožňuje definovat operátory: Myslíme si, že matematické operátory "+", "-", "*" a "/". To může být zajímavé a praktické, například, definovat "+", operátor se používá, pokud nejsou čísla, ale řetězce (soubory alfanumerických znaků). V druhém případě, "součet" odpovídá zřetězení řetězců, například v případě, že řetězec "Hello" a b v řetězci "světa", jejichž provoz

 



 Řetězec c = a + b

 
vedou k vytvoření řetězce C, jehož hodnota je "Hello world".

"S přetížené, a zejména na přetěžování operátorů v C + + , jsou stále považovány v předchozím článku, na které se odvoláváme k dalšímu šetření.

Nyní navrhujeme, aby se nicméně domnívají, konkrétně jak může stejný mechanismus být rozšířena na další typy operátorů a jak užitečné, a to zejména s ohledem na nové a mazat operátorů, což je užitečné pro správu paměti.

Správa paměti

New a delete operátory jsou užitečné pro správu paměti, a to zejména pro rezervaci a přiřazovat (nebo rozdělit), v paměti potřebné pro nový objekt (nový) a zdarma (nebo navrátit), paměť pro další použití (smazat).

Velmi zajímavý aspekt C + +, která se odlišuje od C, je existence nových a odstranit, které umožňují, například s ohledem na nové, pro výpočet prostor potřebný pro každý objekt automaticky (při příkazu ekvivalent C, malloc, vyžaduje programátora určit, jaká je velikost objektu, které mají být přiděleny).

Na tomto místě je přirozené se ptát, co by mohlo být o užitečnosti mechanismu přetížení, protože síla new a delete je jen velmi obecné použití, zdá zbytečné, aby nová definice, která bere v úvahu počet případů. Cena provozovatele, je příliš obecná, ale jak už to bývá, jistý nedostatek v řízení. Například, to není možné, s použitím standardní verze nového provozovatele, jednoduše zkontrolovat, zda tam byly problémy s přidělit potřebné paměti (paměť je k dispozici? Byl přidělen správně?). K překonání tohoto problému je možné využít "přetížen.

Takže se budeme zabývat dnes na jednoduchém příkladu, při přetížení operátoru new a zdůrazňuje, že úvahy uvedené a postupy jsou platné iv případě, že chcete odstranit z přetěžování operátorů.

Ve stejné kategorii ...
E-Learning
AutoCAD (eBook) AutoCAD (eBook)
Tvorba architektonických struktur. V pouhých 29 €.
Flash MX a ActionScript (kurz) Flash MX a ActionScript (kurz)
Staňte se vývojář webových stránek od 29 €.
Web Design (kurz) Web Design (kurz)
Web Design stránky s HTML, CSS a dynamické HTML. Od 39 €.
Sponzorované odkazy