Miért van szükség egy objektum-orientált programozás (OOP)
float F11 (int Z1)
int * X;
int * y;
int * Z;
X = new int;
y = new int;
Z = new int;
...
ahol x, y, z - mutatókat memóriahely, minden egyes alkalommal, amikor egy funkció allokált, hogy abban tároljuk egész számok. Ezek a számok csak akkor van szükség a művelet során funkciót, és ezért köztes adatokat. Végén ezt a funkciót, meg kell tisztítani a memóriát a parancsokat a következő formában:
törlése x;
törölni y;
törlése Z;
Ez a kód az a hátránya a fent leírt - újbóli létrehozása és megsemmisítése a köztes adatok funkció minden új hívást ezt a funkciót. Az egyik megoldás az lehet, hogy a következő: mi beavatkozó változó lehet átvinni a függvény argumentuma. Ie utómunka kód a következő:
float F11 (int Z1, int * x, int * y, int * z) <
...
Mindent! Mivel * x, * y, * z - ez most függvényargumentumok, meg kell létrehozni egyszer megkezdése előtt a funkciót, valamint bármely egyéb érveket, amelyek bemeneti függvény. Tehát egy függvény F11 () már nem fog minden létrehozására vagy eltávolítására ugyanezen változók. Így foglalni memória ezt a funkciót, akkor indítsa el egyszer létrehozásával a megfelelő változókat. Továbbá célszerű ezt a megközelítést. Példánkban a függvény által visszaadott szám float típusú. Ez azt jelenti, hogy minden egyes alkalommal, amikor a változót a függvény az úszós jön létre, amely naplózza a teljesítménye ezt a funkciót, majd a végén a funkció, ez a változó megsemmisül. Azaz, sőt, a test a funkció a következő:
float F11 (int Z1, int * x, int * y, int * z)
Ismét az extra lépést a teremtés és a pusztítás. Itt hoztuk létre a változó Vix float típusú függvény, amely visszaadja az érték, és a változó maga pusztítja Vix - tisztítja memóriaterület, amely alatt ez a funkció kiválasztva. Így, ha a működésbe lép többször többször valójában létrehozni és elpusztítani az üres változó Vix. Így Tekintettel a fentiekre, célszerű megtenni:
void F11 (int Z1, int * x, int * y, int * z, float * vix) <
...
>
Ennek eredményeként a belsejében a funkció nem hoz létre semmilyen közbülső változókat, és a függvény nem ad vissza semmit. Minden, amire szükség van a működését át a függvény argumentuma. Ennek eredményeként minden egyes alkalommal futtatja a funkció nincs szükség minden egyes alkalommal, hogy elkülönítse és tisztítsa meg a memóriát. Mindez memória, sőt, kiemelkedik egyszer, mielőtt az első start funkció. Ez a funkció csak módosítja az adatokat a memóriában - érvek arra szolgált, hogy a bemenet. A funkció memóriát nem tiszta. Így, már elválasztott elosztásának folyamatáról memóriát és a folyamat az adatok feldolgozására (memória). A funkció jelenleg csak akkor működik, az adatok a memóriában, és annak izolálása és tisztítása nem válaszol. Mindez rendben van, de az első, itt a változók funkció - az érvelését, ami azt jelenti, hogy nem jön létre a funkción belül - ezek a külső a funkciót. És ha igen, akkor is változtatni nem csak a funkció, hanem valaki más mellett ezt a funkciót. Abban az időben, a változók belül létrehozott funkciók csak a funkció is, és senki más. Másrészt, ha szükségünk van egy csomó fajta köztes változók, tömbök, stb függvény? Ez gyakran olyan funkció - ez egy nagy rutin. Akkor írj minden közbülső változókat paraméterként funkciók nem felhasználóbarát. Legalábbis jó lenne egyesíteni az összes ilyen változók egyetlen szerkezetű és funkciójú bemenet egy linket ehhez ugyanazt a szerkezetet. Ennek eredményeként, a nyelv tervezők volt valami hasonló, de még tovább ment - az általuk létrehozott egy speciális szerkezet, az úgynevezett osztályban. Osztály - egyfajta szervező a kódot, ahol az azonos nevű (ID) is függvénye az adatokat, és hogy feldolgozott. Ez egy olyan funkció, amelyeket egyetlen struktúra az adatokat, hogy kell kezelni ezt a funkciót, és hogy most már nem kell létrehozni ezen belül funkciót is minden alkalommal elindul. Mi vagyunk az osztályban előre leírni az összes változók, tömbök, stb - Minden a memóriában van szükségünk, valamint az osztályban, akkor a funkciókat mutatja, hogy vannak és lesznek dolgozni ezeket a változókat (ezzel memória). És akkor is, ha ez a funkció nincs bemeneti érvek, hogy a változók, tömbök, stb és funkciók tartoznak azonos szerkezetű (az azonos osztályú) - Ez utasítja a számítógépet, hogy a funkciók ez az osztály lehet dolgozni változók, tömbök, stb Az ebbe az osztályba, mind a saját érveit. Sőt, az adatok vannak osztva osztály magán- és állami. Ha leírja, például egy változót magán, akkor csak működni ebben az osztályban - és semmi mást ezen osztály változtatni ezt a változót nem lehet. Ez azt jelenti, hogy milyen típusú magán - van, sőt, mivel a belső funkcióinak változók - ezek csak kezelni a funkciót is, és semmi mást! Nos, hogy milyen típusú adat nyilvános és azok, akik nem tagjai ennek az osztálynak - azaz, Ezen adatok lényegében írni a függvény eredménye, hogy már érdekelt ebben az osztályban - azaz, Ez valami olyasmi, hogy visszatér a funkciót, ha nem használja a koncepció az osztály, és a munka csak a funkciókat. Tehát egy ilyen kombináció adatok és funkciók feldolgozni őket ugyanabban a szerkezetben (kap a nevét az osztály) - ez a lényege az olyan fogalmak, mint a beágyazás. Mint láttuk - azt javasolta, hogy a gyakorlatban a „mozog” a fejlesztők a programozási nyelvek. Kiderült, hogy ez az optimális, ha a funkció csak végrehajt egy sor műveletet az adatokat. leírását az adatok és a (memória) Ezen funkciók találhatók, egy külön helyet a funkciókat. És ugyanakkor a funkció és a memória adatait számukra, hogy egyetlen szerkezet - az osztályban. Object, mellesleg - ez egy konkrét megvalósítása egy osztály. Csakúgy, mint az a fajta csapat:
int - ez az általános megjelölése típusú egész szám, és az i - ez egy adott egész változó, amely maga is annak a ténynek köszönhető, hogy a fenti parancsban áll azonosítója egy int típusú. És osztályok. Osztály - egy általános kifejezés egy típusú konstrukció, a tárgy - a meghatározott megjelenítési ezt a struktúrát. Mintegy típusok látni. Itt is. By the way, van is fontos a következő pillanatban, mint egy időben kapcsolódó osztályok és típusok. Gyakran, amikor leírja a változók típusát a program zajlik például a következő:
Ez memóriát a megfelelő helyre a változók i, j, k, ahol tudunk írni az adatokat a típus. Azonban, ha van, például K1 osztály, amelyben vannak, például a változók a1, b1, c1 int és funkciója feldolgozás ezen változók funk1 ():
osztály K1 <
nyilvános:
int a1, b1, c1;
void funk1 ();
A leírás, mint ez:
Ez vezet az a tény, hogy a tárgyak jön létre az X, Y, Z, ami memóriát fog azok változók a1, b1, c1, ahol tudunk írni a megfelelő adatokat. Tehát most már írhatunk bármely egész a memóriában szakaszok nevek X.a1, X.b1, X.c1, Y.a1, Y.b1 és így tovább, azaz bebizonyította, hogy a kiosztott memória mellett megfelelő 9 szám: 3 szám (a1, b1, c1) az objektum X, 3 objektum Y, 3 a tárgy Z - minden a helyzet int típusú hirdetéseket, ahol memóriát alatt a megfelelő változókat. De akár a lefoglalt memóriát az egyes funkciók funk1 () minden objektum? Ez lesz elkülönített tárolás Do X.funk1 (), Y.funk1 (), Z.funk1 ()? Kiderült, hogy van, és ez logikus, mert különben mi lett volna háromszor a lefoglalt memória lényegében ugyanazt a funkciót (a funkció, amely ugyanúgy működik)! És ez a hülye hulladék számítógép erőforrásait. Így c ++ memória funkció az egyes tárgyak az azonos osztályba nem látszanak - funkciók nem duplikált létrehozásakor osztályú objektumok. Azaz, a fogalmának bevezetése az osztály, nem egyszerűen összehozni egy egységes szerkezetű (osztály) adatok és funkciók feldolgozásra, hanem a fogalom magában elutasításának párhuzamos ugyanazokat a funkciókat az adott tárgy azonos osztályban.
Következő fogalmát OOP - öröklés. Ismét egy példa a képfeldolgozás. Nézzük, mire valaki létrehozott egy osztályt képekkel dolgozik. Voltunk teljesen elégedettek az osztályban, de szeretnénk látni amellett, hogy a képfeldolgozás lehetőségeit, amely az osztály, ott lenne a kiegészítő funkciókat. öröklési eljárás lehetővé teszi, hogy hozzon létre saját osztályt képekkel dolgozik alapján egy létező osztályhoz - mi osztály örökli összes funkcióját az előző, plusz ehhez hozzátesszük, hogy a kívánt funkciót. Ez minden. Ez nagyon kényelmes, mert nem kell megismételni a kidolgozására irányuló munka jellemzői, amelyek már léteznek egy létező osztályhoz nekünk. Mi öröklik ezeket a funkciókat egyszerűen létrehozásával egy osztályt, amely örökli egy létező osztályhoz. És mi program, tudjuk használni mind az ős osztály és a származtatott osztály, és annak ellenére, hogy van két nagyon hasonló egymás osztályok származtatott osztály, nem újra létrehozni egy funkció, amely már létezik az ős osztályok. Így nincs ezek ugyanazokat a funkciókat, hogy átírják a származtatott osztály - csak használja az ős osztály funkcióit, és végül nem újra elfoglalják a memória ugyanazt a funkciót különböző osztályok.
És végül, a polimorfizmus. Itt minden nagyon egyszerű, és ez a fogalom, sőt, a fejlesztés olyan jelenségeket, mint a funkció túlterhelés (korábbi nevén pregruzka újrafogalmazása). Ez az, amikor ugyanazt a funkciót eltérően viselkedhetnek attól függően, hogy milyen típusú adatokat nyújtott be neki bemenet. Például, ha van egy bizonyos funkciót a szaporodás, és ha át is érvként egészek, csak őket, majd amikor érvek ad neki egy mátrix, akkor ez a funkció megsokszorozza a mátrix szabály szerint a mátrix szorzás. Ez azt jelenti, van egy és ugyanazt a funkciót, ugyanazt a felületet (módon, hogy kölcsönhatásba, kijelző) használják megszorozzuk az adatok különböző. Annak érdekében, hogy a programunkat úgy, hogy ugyanazt a felületet használnak az adatok a különböző típusú, vannak speciális parancs nyelvet. Egy másik példa - a képfeldolgozás. Ez az, amikor ugyanaz a program egyaránt képeket feldolgozni a különböző formátumok - BMP, JPEG, GIF, stb ugyanakkor nem törődnek a formátumot a képet - meg kell kezelni, hogy a program ugyanazt a műveletet, függetlenül attól, hogy mi most egy adott kép formátumban. A végén, a polimorfizmus létrehozni elég felhasználóbarát felület.
Így OOP tervezés - ez nem valami valaki önkényesen kitalált. OOP technikák merültek fel a gyakorlatban is - optimálisabb munkamódszerek azokkal az információkkal, ez minden.
Ui Azok számára akik a számítógépes eszköz tanácsos lehet itt ezt a könyvet, és különösen a feje is - „Mi az a számítógép” (a könyv maga, vagy egyes fejezetei, akkor lehet vásárolni itt).