Létrehozása egyszerű design

Lecke 23. A konstruktor és destruktor

Amikor objektumokat hoz létre az egyik leggyakrabban használt műveletek akkor elvégzi a program, akkor inicializálni az elemek az adatok objektumot. Ahogy az 22. lecke, az egyetlen módja, amelyen keresztül lehet hozzáférni a személyes adatok elemek használata egy osztály funkciókat. Ahhoz, hogy egyszerűsítse a folyamat inicializálása adatelemek osztály, C ++ egy speciális funkció az úgynevezett konstruktor, amely fut minden objektum létrehozásakor. Hasonlóképpen, a C ++ olyan funkciót nyújt úgynevezett destructor, amely akkor indul, amikor egy objektum megszűnik. Ez az osztály konstruktor és destruktor tárgyaljuk részletesebben. Végére ez a lecke, megtudhatja az alábbi alapfogalmakat:

A konstruktor egy osztály módszer, amely megkönnyíti a programot elindítani osztály adatelemek.

A kivitelező ugyanaz a neve, mint az osztálynak.

Constructor nincs visszatérési értéke.

Minden alkalommal, amikor a program létrehoz egy osztály változó, C ++ az osztály konstruktora, ha van egy tervező.

Sok tárgyak memóriát kiosztani az információ tárolására; ha töröl egy objektumot, C ++ destruktor fogja hívni egy speciális, amely kiadja ezt a memóriát, tisztítás után az objektumot.

Destructor ugyanaz a neve, mint az osztálynak, kivéve, hogy meg kell előznie a neve tilde (

Destructor nincs visszatérési értéke.

Feltételek konstruktor és destruktor nem megijeszteni. Ehelyett elképzelni egy designer függvényében, hogy segít felépíteni (tervezés) objektumot. Hasonlóképpen, a romboló egy olyan funkció, amely segít elpusztítani az objektumot. A destruktor akkor használatos, amikor egy objektum megszűnik, ha meg kell szabadítani a memóriát, hogy tartotta a tárgyat.

A konstruktor egy osztály módszer, hogy ugyanaz a neve, mint az osztálynak. Például ha egy osztály az úgynevezett munkavállalói, a tervező is lesz a neve a munkavállaló. Hasonlóképpen, egy osztály a nevét a tervező kutyák lesz a kutyák nevét. Ha a program határozza meg a kivitelező, C ++ automatikusan hívja minden alkalommal, amikor létrehoz egy objektumot. Következő CONSTRUC.CPP program létrehoz egy osztály nevű alkalmazottja. A program meghatározza a kivitelező nevű munkatársa hozzárendeli a kezdeti érték az objektum. Azonban a kivitelező nem ad vissza semmilyen értéket, annak ellenére, hogy ez nem nyilvánították semmisnek. Ehelyett egyszerűen nem adja meg a visszatérési típus:

A programban egyszerűen határozza meg a kivitelező ugyanúgy, mint bármely más módszer az osztály:

alkalmazotti :: alkalmazott (char * name, hosszú employee_id, úszó fizetés)

Mint látható, a kivitelező nem hívja a függvény egy értéket. Mert azt nem használják típus érvénytelen. Ebben az esetben a tervező használja a globális szereplő, és lehetővé teszi az osztály nevét neve előtt az egyes elemek, a tárgyalt lecke 23. Az alábbiakban CONSTRUC.CPP a program végrehajtását:

alkalmazotti :: alkalmazott (char * name, hosszú employee_id, úszó fizetés)

alkalmazotti munkás ( "Happy Jamsa", 101 10101,0);

Ha a programot kell létrehozni több objektum a munkavállaló, akkor inicializálni elemeit mindegyik segítségével a tervező, az alábbiak szerint:

alkalmazotti munkás ( "Happy Jamsa", 101 10101,0);

alkalmazotti manager ( "Jane Doe", 1022, 30000,0);

Az az elképzelés, a tervező

A konstruktor egy speciális funkciója, hogy a C ++ automatikusan hívja minden alkalommal, amikor létrehoz egy objektumot. A szokásos célja egy konstruktor inicializálni az elemek a adatobjektum. A kivitelező ugyanaz a neve, mint az osztálynak. Például egy osztály nevű fájlt tervező neve fájlt. Ön határozza meg a kivitelező a programot, valamint minden osztály módszer. Az egyetlen különbség az, hogy a kivitelező nem rendelkezik visszatérési értéke. Amikor egy objektum később paraméterek átadása a kivitelező, az alábbiak szerint:

class_name objektum (valuel, érték2, érték3)

A tervezők és az alapértelmezett beállításokat

Mint azt már tudja a 15. lecke, C ++ adhatja meg az alapértelmezett értékeket funkció paramétereit. Ha a felhasználó nem ad meg semmilyen paramétert, akkor a függvény az alapértelmezett értékeket. A tervező nem képez kivételt; A programot megadhat egy alapértelmezett értéket érte ugyanúgy, mint bármely más funkciót. Például a következő kivitelező munkavállaló egy alapértelmezett értéke egyenlő a fizetést 10000,0, ha a program nem jelzi a fizetési amikor egy objektum jön létre. A program azonban meg kell határozni a munkavállaló nevét és számát:

alkalmazotti :: alkalmazott (char * name, hosszú employee_id, úszó fizetés = 10000,00)

Mint azt már tudja óráról 13, C ++ lehetővé teszi a programot, hogy túlterheli a függvénydefiníciókat jelzésére alternatív funkciók más típusú paramétereket. C ++ segítségével túlterhelés és a tervezők. Következő CONSOVER.CPP programot túlterheli a munkavállaló kivitelező. Az első kivitelező előírja, hogy a program meghatározza a munkavállaló nevét, az alkalmazottak számát és fizetését. A második kivitelező kéri a felhasználót, hogy adja meg a szükséges fizetést, ha a program nem jelzi azt:

alkalmazotti :: alkalmazott (char * name, hosszú employee_id)

Belül az osztály definíciója kell mondani prototípusok mind a tervezők, az alábbiak szerint:

Az alábbiakban CONSOVER.CPP a program végrehajtásáról:

alkalmazotti :: alkalmazott (char * name, hosszú employee_id, úszó fizetés)

alkalmazotti :: alkalmazott (char * name, hosszú employee_id)

Ha lefordítani és futtatni ezt a programot, a képernyő meg kell adnia a fizetés Jane Doe. Ha belép egy fizetés, a program megjeleníti információkat a két alkalmazottal.

Kapcsolódó cikkek