Kapcsolatok

§1 Általános információk a nyelvről. A programtervezés szakaszai. Alkalmazás életciklus modellek. A C nyelv története Mikor jött létre a nyelv azzal

C ++ programozási nyelv

Utolsó frissítés: 2017.08.28

A C ++ programozási nyelv egy magas szintű, statikusan tipizált, általános célú lefordított programozási nyelv, amely sokféle alkalmazás felépítésére alkalmas. Ma a C ++ az egyik legnépszerűbb és legelterjedtebb nyelv.

Gyökerei a C nyelvben rejlenek, amelyet 1969-1973 között fejlesztett ki a Bell Labs-ban Dennis Ritchie programozó. Az 1980-as évek elején Bjarne Stroustrup dán programozó, aki akkor a Bell Labs-nál dolgozott, kifejlesztette a C ++-t a C nyelv kiterjesztéseként. Valójában a C ++ kezdetben egyszerűen kiegészítette a C nyelvet néhány objektum-orientált programozási lehetőséggel. És így maga Stroustrup kezdetben "C osztályokkal"-nak nevezte.

Ezt követően az új nyelv népszerűvé vált. Új funkciókkal bővült, amivel nem csak a C kiegészítése, hanem egy teljesen új programozási nyelv lett. Ennek eredményeként a "C with Classes" nevet C ++ névre keresztelték. És ettől kezdve mindkét nyelv egymástól függetlenül kezdett fejlődni.

A C ++ egy erőteljes nyelv, amely gazdag memóriaképességet örökölt a C-től. Ezért a C ++ gyakran alkalmazza a rendszerprogramozásban, különösen operációs rendszerek, illesztőprogramok, különféle segédprogramok, víruskeresők stb. létrehozásakor. A Windows egyébként többnyire C ++-ban van írva. De ennek a nyelvnek a használata nem korlátozódik csak a rendszerprogramozásra. A C ++ bármilyen szintű programban használható, ahol fontos a sebesség és a teljesítmény. Gyakran használják grafikus alkalmazások, különféle alkalmazási programok létrehozására. Különösen gyakran használják gazdag, gazdag vizualizációs játékok létrehozására. Ráadásul az utóbbi időben egyre nagyobb lendületet vesz a mobil irány, ahol a C ++ is megtalálta az alkalmazását. És még a webfejlesztésben is lehetőség van a C ++ használatával webalkalmazások vagy valamilyen webes alkalmazásokat kiszolgáló segítő szolgáltatások létrehozására. Általában a C ++ egy széles körben használt nyelv, amelyen szinte bármilyen programot létrehozhat.

A C ++ egy lefordított nyelv, ami azt jelenti, hogy a fordító a C ++ forráskódot végrehajtható fájllá fordítja le, amely gépi utasításokat tartalmaz. De a különböző platformoknak megvannak a sajátosságai, így a lefordított programokat nem lehet egyszerűen átvinni egyik platformról a másikra és ott lefutni. A forráskód szintjén azonban a C ++ programok többnyire hordozhatóak, kivéve, ha az aktuális operációs rendszerre jellemző funkciókat használnak. A fordítók, a könyvtárak és a fejlesztőeszközök szinte minden elterjedt platformon való jelenléte lehetővé teszi, hogy ugyanazt a C ++ forráskódot fordítsa le ezekre a platformokra vonatkozó alkalmazásokba.

A C-vel ellentétben a C ++ nyelv lehetővé teszi, hogy objektum-orientált stílusban írjunk alkalmazásokat, amelyek kölcsönható osztályok és objektumok gyűjteményeként jelenítenek meg egy programot. Ez megkönnyíti a nagy alkalmazások létrehozását.

A fejlődés főbb szakaszai

1979-80-ban Bjarne Stroustrup kifejlesztette a C nyelv kiterjesztését - "C osztályokkal". 1983-ban a nyelvet átnevezték C ++-ra.

1985-ben megjelent a C ++ nyelv első kereskedelmi verziója, valamint a "The C ++ Programming Language" című könyv első kiadása, amely hivatalos szabvány hiányában adta meg ennek a nyelvnek az első leírását.

1989-ben megjelent a C ++ 2.0 nyelv új verziója, amely számos új funkciót tartalmazott. Ezt követően viszonylag lassan fejlődött a nyelv egészen 2011-ig. Ugyanakkor 1998-ban az ISO (International Organisation for Standartization) megtette az első kísérletet a nyelv szabványosítására. Az első szabvány az ISO / IEC 14882: 1998 vagy röviden C ++ 98 nevet kapta. Később, 2003-ban megjelent a C ++ 03 szabvány új verziója.

2011-ben megjelent az új C ++ 11 szabvány, amely számos kiegészítést tartalmazott, és számos új funkcióval gazdagította a C ++ nyelvet. Ezt követően 2014-ben megjelent egy kis kiegészítés a szabványhoz, más néven C ++ 14. A nyelv másik kulcsfontosságú kiadása pedig 2017-re várható.

Fordítók és fejlesztői környezetek

A C ++ programok fejlesztéséhez fordítóprogramra van szükség - ez lefordítja a C ++ forráskódot egy futtatható fájlba, amelyet aztán futtathat. De jelenleg sok különböző fordító létezik. Különböző szempontok szerint eltérhetnek, különösen a szabványok végrehajtásában. A C ++ fordítóprogramok alapvető listája megtalálható a Wikipédián. Fejlesztéshez javasolt azokat a fordítókat választani, amelyek a legújabb szabványokat fejlesztik és implementálják. Így ebben az oktatóanyagban elsősorban a GNU Project által kifejlesztett ingyenes g ++ fordítót használjuk.

Programok létrehozásához használhat olyan IDE-ket is, mint a Visual Studio, Netbeans, Eclipse, Qt stb.

C és UNIX

Programozási nyelv VAL VEL(értsd: "C") a 70-es évek elején jött létre, amikor Ken Thompson és Dennis Ritchie, a Bell Labstól az UNDC operációs rendszert fejlesztették. Először létrehozták a fordító részt VAL VEL, majd ezzel fordította le a fordító többi részét VAL VELés végül az eredményül kapott fordítót alkalmazta a UNIX fordítására. A UNIX operációs rendszert eredetileg forráskódban terjesztették VAL VEL egyetemek és laboratóriumok között, és a címzett a nyelven állíthatta össze a forráskódot VAL VEL gépi kódba megfelelő fordítóval VAL VEL.

A forráskód terjesztése egyedivé tette a UNIX operációs rendszert; a programozó megváltoztathatja az operációs rendszert, és a forráskódot egyik hardverplatformról a másikra lehetett átvinni. Napjainkban a POSIX szabvány meghatározza a UNIX rendszerhívások szabványos készletét, amelyekben elérhetők VAL VEL a POSIX-kompatibilis UNIX-verziókon való megvalósításra. A C volt a harmadik nyelv, amelyet Thomson és Ritchie fejlesztett ki a UNIX létrehozása során; az első kettő természetesen Aés V.

C mobil assembly nyelv

A korábbi nyelvhez képest - BCPL, nyelv VAL VEL meghatározott hosszúságú adattípusok hozzáadásával javult. Például az int adattípussal egy meghatározott számú (általában 16) bites változót hozhatunk létre, míg a hosszú adattípussal egy nagy számú bitet tartalmazó (általában 32) egész változót hozhatunk létre. Más magas szintű nyelvektől eltérően, VAL VEL közvetlenül működhet a memóriacímekkel mutatók és hivatkozások segítségével. Amennyiben VAL VEL Megőrizte a hardver közvetlen elérésének képességét, gyakran középszintű nyelvnek vagy viccesen "mobil assembly nyelvnek" nevezik.

С - strukturált programozási nyelv

A nyelvtan és a szintaxis tekintetében tehát VAL VEL egy strukturált programozási nyelv. Míg sok modern programozó osztályokban és objektumokban gondolkodik, addig a programozók VAL VEL eljárásokban és funkciókban gondolkodjunk. V VAL VEL a struct kulcsszó segítségével meghatározhatja saját absztrakt adattípusait. Hasonlóképpen leírhatja saját egész típusait (felsorolásait), és más neveket adhat a meglévő adattípusoknak a typedef kulcsszó használatával. Ebben az értelemben VAL VEL egy strukturált nyelv az objektum-orientált programozás magvaival.

A C nyelv szabványosítása

A nyelv elterjedt használata C a különböző típusú számítógépeken (néha hardverplatformoknak is nevezik) sajnos a nyelv számos változatához vezetett. Hasonlóak voltak, de nem kompatibilisek egymással. Ez komoly problémát jelentett a szoftverfejlesztők számára, akiknek olyan kompatibilis programokat kellett írniuk, amelyek több platformon is futhatnak. Világossá vált, hogy standard verzióra van szükség C... 1983-ban. Az ANSI (Amerikai Nemzeti Szabványügyi Bizottság) egy X3J11 technikai bizottságot hozott létre egy nyelvi szabvány létrehozására C(hogy "egyértelmű és gépfüggetlen definíciót adjon a nyelvnek"). A szabványt 1989-ben hagyták jóvá. Az ANSI az ISO-val (Nemzetközi Szabványügyi Szervezet) társult a szabványosítás érdekében C nemzetközileg; egy közös szabványt adtak ki 1990-ben, és az ANSI / ISO 9899: 1990 nevet kapta. Ez a szabvány még mindig fejlesztés alatt áll, és a fordítófejlesztő cégek többsége támogatja.

A C ++ születése

Björn Stroustrup szabadjára engedte az objektum-orientált potenciált VAL VEL osztályok képességeinek átadásával 67-es szimuláció v VAL VEL... Kezdetben az új nyelv "C osztályokkal" nevet viselt, és csak ezután kezdték el hívni C ++... Nyelv C ++ Akkor vált népszerűvé, amikor a Bell Labs-nál fejlesztették ki, majd később más iparágakhoz és vállalatokhoz is átkerült. Ma ez az egyik legnépszerűbb (és legelismertebb) programozási nyelv a világon. C ++örökli a jó és a rossz oldalát is VAL VEL.

Bjorn Stroustrup kinyilatkoztatásai

Bjorn Stroustrup: „Én találtam ki C ++, felírta az eredeti definíciót, és elvégezte az első megvalósítást. Kiválasztottam és megfogalmaztam a tervezési kritériumokat C ++, kidolgozta fő jellemzőit, és felelős volt a nyelv bővítésére irányuló javaslatok sorsáért a szabványosítási bizottságban C ++", - írja a legnépszerűbb programozási nyelv szerzője. -" Nyelv C ++ sokat köszönhet a nyelvnek C, és a nyelv C részhalmaz marad C ++ nyelv(de a C ++ a C típusú rendszer több jelentős hibáját javítja). Pénzt is spóroltam C amelyek elég alacsony szintűek a legkritikusabb rendszerfeladatok kezeléséhez. Nyelv C sokat köszönhet elődjének, a BCPL-nek; egyébként a // megjegyzésstílust átvették C ++ a BCPL-től. A nyelv volt a másik jelentős inspirációs forrás. Szimula67... Az osztályok fogalmát (a származtatott osztályokkal és virtuális függvényekkel) onnan kölcsönözték. Emlékeztet a kezelők túlterhelésének eszköze és a bejelentések elhelyezése bárhol, ahol utasítás írható Algol68. "

Miért C ++

Név C ++ Rick Massitti találta fel. A név a hozzá való átmenet evolúciós jellegét jelzi C... A "++" egy növekményes művelet C... Kicsit rövidebb név C + szintaktikai hiba; ráadásul már egészen más nyelv neveként is használták. A szemantika ismerői C találd meg azt C ++ rosszabb ++ C... Nevek D a nyelv nem értette meg, mert ez a C kiterjesztése, és nem próbálja meg a problémákat orvosolni különféle funkciók kidobásával.

Miért volt szükség a C ++-ra?

Alapvetően C ++ programozási nyelvúgy lett kialakítva, hogy a szerzőnek és barátainak ne kelljen assembly, C vagy más modern magas szintű nyelveken programozni. Fő célja az volt, hogy a jó programok írását könnyebbé és élvezetesebbé tegye az egyes programozók számára. Fejlesztési Terv C ++ soha nem volt papíron; a tervezés, a dokumentáció és a kivitelezés egyszerre költözött. Természetesen a külső felület C ++ be volt írva C ++... A C ++ Projekt és a C ++ Fejlesztési Bizottság soha nem létezett. Így C ++ minden irányba fejlődött és fejlődik, hogy megbirkózzon a felhasználók előtt álló bonyolultságokkal, valamint a szerző, barátai és kollégái közötti megbeszélések során.

Valódi objektum orientált C ++

V C ++ nyelv Az objektum-orientált programozás alapelvei teljes mértékben támogatottak, beleértve a három pillért, amelyeken ez áll: a beágyazást, az öröklődést és a polimorfizmust. Kapszulázás be C ++ nem szabványos (egyedi) adattípusok, úgynevezett osztályok létrehozásával támogatott. Nyelv C ++ támogatja az öröklést. Ez azt jelenti, hogy deklarálhatunk egy új adattípust (osztályt), amely a meglévő kiterjesztése.

Bár C ++ programozási nyelv joggal nevezik folytatásnak VAL VELés bármely működő program a nyelven VAL VEL a fordító támogatja C ++, induláskor VAL VEL Nak nek C ++ igen jelentős ugrás történt. Nyelv C ++ profitált a nyelvhez való rokonságából VAL VEL az évek során számos programozó úgy találta, hogy az előnyök teljes kihasználása érdekében C ++ nyelv, fel kell adniuk korábbi tudásukat, és újakat kell elsajátítaniuk, nevezetesen: el kell sajátítaniuk a konceptualitás és a programozási problémák megoldásának új módját. Mielőtt elkezdené elsajátítani C ++, Stroustrup és a legtöbb más programozó használja C ++ fontolja meg a nyelvtanulást VAL VEL választható.

Programozási nyelv C ++ Jelenleg a kereskedelmi termékek fejlesztésének domináns nyelveként tartják számon, a játékok 90%-át ezen a nyelven írják C ++ DirectX használatával.

Irodalom

Források:

  • H.M.Deitel, P.J.Deitel "Hogyan kell programozni C ++-ban"
  • Bjarne Stroustrup "A C ++ programozási nyelv. 3. kiadás."
  • Simon Robinson, Ollie Cornes, Jay Glynn és társai "C # for Professionals"
  • Jess Liberty "Tanulja meg a C ++ nyelvet egyedül 21 nap alatt"
  • Stanislav Gornakov "DirectX, C ++ programozási leckék"

A C ++ (olvassa a C-plus-plust) egy lefordított, statikusan tipizált általános célú programozási nyelv, amellyel bármilyen bonyolultságú programokat készíthet.
Ez a nyelv több mint 20 éve az első három legnépszerűbb és legkeresettebb programozási nyelv között van. (Ezt ellenőrizheti a TIOBE webhelyén).
A nyelv az 1980-as évek elején keletkezett, amikor a Bell Labs alkalmazottja, Björn Stroustrup számos továbbfejlesztést dolgozott ki a C nyelven, hogy megfeleljen saját igényeinek.

Bjarne Stroustrup - a C ++ nyelv megalkotója

Stroustrup úgy döntött, hogy kiegészíti a C nyelvet a Simula nyelv képességeivel. A C, mint a UNIX rendszer alapnyelve, amelyen a Bell számítógépek futottak, gyors, funkciókban gazdag és hordozható. Stroustrup hozzáadta az osztályokkal és objektumokkal való munkavégzés képességét. Ennek eredményeként a modellezés gyakorlati problémái megoldhatónak bizonyultak mind a fejlesztési idő (a Simula-szerű osztályok használatának köszönhetően), mind a számítási idő (a C sebességének köszönhetően) tekintetében.
Maga a nyelvfejlesztő így vall róla:



1998-ban egy szabványosítási bizottság kiadta az első nyelvi szabványt, a C ++ 98 néven. A C ++ folyamatosan fejlődik, hogy megfeleljen a modern követelményeknek. Az egyik csoport, amely fejleszti a C ++ nyelvet, és javaslatokat küld a fejlesztésére a C ++ Szabványügyi Bizottságnak Boost, amely többek között a nyelv képességeinek fejlesztésével foglalkozik metaprogramozási funkciók hozzáadásával. Az utolsó szabvány 2017-ben jelent meg, és az ún C ++ 17... A következő szabvány nem fog sokáig várni, és a vártnak megfelelően 2020-ban fog megjelenni.
Senki nem birtokolja a C ++ nyelv jogait, az ingyenes. 2016 márciusában Oroszországban létrehoztak egy WG21 C ++ munkacsoportot. A csoport azzal a céllal jött létre, hogy összegyűjtse a C ++ szabványra vonatkozó javaslatokat, elküldje azokat a bizottságnak, és megvédje azokat a Nemzetközi Szabványügyi Szervezet közgyűlésein.
A C ++ egy többparadigmás nyelv (a paradigma szóból - a számítógépes programok írásának stílusa), amely a programozási stílusok és technológiák széles skáláját tartalmazza. Gyakran objektum-orientált nyelvnek nevezik, de szigorúan véve nem az. A munkafolyamat során a fejlesztő abszolút szabadságot nyer az eszközök megválasztásában, hogy az ezzel vagy azzal a megközelítéssel megoldott probléma a lehető leghatékonyabban megoldódjon. Más szóval, a C ++ nem kényszeríti a programozót arra, hogy ragaszkodjon egyetlen programfejlesztési stílushoz (például objektum-orientálthoz).
A C ++ gazdag szabványkönyvtárral rendelkezik, amely általános konténereket és algoritmusokat, I/O-t, reguláris kifejezéseket, többszálú támogatást és még sok mást tartalmaz. A C ++ számos programozási nyelvre hatással volt, köztük: Java, C #, D. Mivel a C ++ a C nyelv szintaxisa alapján a nyelvek családjába tartozik, könnyen elsajátíthatja a család többi programozási nyelvét : JavaScript, PHP, Perl, Objective-C és még sok más... mások, beleértve magát a szülőnyelvet - C. ()
Fennállása során a C ++ nyelv stabil mítoszokat vésett, amelyek könnyen megcáfolhatók (lásd itt: 1. rész és 2. rész)

A nyelv története és a szabványok kiadása

1983

A nyelv alkotója - Bjorn Stroustrup, a Bell Labs alkalmazottja bemutatta a C ++ korai verzióját („C with Classes”)

1985

A C ++ első kereskedelmi kiadása, a nyelv felveszi modern nevét

1986

A Björn Stroustrup által írt The C ++ programozási nyelv, a C ++-ról szóló könyv első kiadása

1998

Ratifikálta a C ++ nyelv nemzetközi szabványát: ISO / IEC 14882: 1998 "Standard for the C ++ Programming Language"

2003
2005

Megjelent az 1. könyvtári technikai jelentés (TR1). Bár hivatalosan nem része a szabványnak, a jelentés ismertette a szabványos könyvtár kiterjesztéseit, amelyeket a C ++ nyelv következő verziójában kell tartalmaznia.

2011

Egy új szabvány kiadása - C ++ 11 vagy ISO / IEC 14882: 2011; az új szabvány kiegészítéseket tartalmazott a nyelv magjához és a szabványos könyvtár kiterjesztését, beleértve a TR1 nagy részét

2014

A C ++ 14 szabvány ("ISO / IEC 14882: 2014 (E) C ++ programozási nyelv nemzetközi szabvány") kiadása; A C ++ 14 a C ++ 11 kis kiterjesztésének tekinthető, amely többnyire hibajavításokat és kisebb fejlesztéseket tartalmaz

2017

Új szabvány megjelent - C ++ 1z (C ++ 17). Ez a szabvány számos változtatást és kiegészítést vezetett be. Például az STD tartalmazza a C11 szabvány könyvtárait, egy boost :: fájlrendszeren alapuló fájlrendszert, és a kísérleti TS I könyvtár nagy részét.

2020

A C ++ 20 a C ++ programozási nyelv ISO / IEC szabványának nem hivatalos neve, amely a C ++ 17 után várható. Az N4800 szabvány tervezete.

C ++ filozófia

A The Design and Evolution of C ++ (2007) című művében Björn Stroustrup leírja azokat az elveket, amelyeket a C ++ tervezése során követett (rövidítve):

  • Szerezzen be egy általános nyelvet statikus adattípusokkal, a C nyelv hatékonyságával és hordozhatóságával.
  • Számos programozási stílust támogat közvetlenül és átfogóan.
  • Adja meg a programozónak a választás szabadságát, még akkor is, ha ez lehetőséget ad a rossz választásra.
  • A lehető legnagyobb mértékben tartsa fenn a C-vel való kompatibilitást, lehetővé téve ezzel a könnyű átállást a C programozásról.
  • Kerülje a C és C ++ összetévesztését: a mindkét nyelven engedélyezett konstrukciók mindegyikében ugyanazt kell, hogy jelentsék, és ugyanazt a programviselkedést eredményezzék.
  • Kerülje a platformfüggő vagy nem általános funkciókat.
  • Ne fizessen azért, amit nem használ – egyetlen nyelvi eszköz sem ronthatja az azt nem használó programok teljesítményét.
  • Ne igényeljen túl bonyolult programozási környezetet.

C és C ++

A C ++ szintaxisa a C nyelvtől öröklődött. Bár formálisan a C ++ egyik alapelve továbbra is a C nyelvvel való kompatibilitás megőrzése, valójában ezeknek a nyelveknek a szabványosítására szolgáló csoportok nem kölcsönhatásba lépnek, és az általuk végrehajtott változtatások nemcsak hogy nem korrelálnak egymással, hanem gyakran ideológiailag alapvetően ellentmondanak egymásnak. Például azok az elemek, amelyeket az új C szabványok a maghoz adnak, a C ++ szabvány szabványos könyvtárának elemei, és teljesen hiányoznak a magból, például dinamikus tömbök, rögzített határú tömbök, párhuzamos feldolgozási lehetőségek. Stroustrup szerint nagyon előnyös lenne a két nyelv fejlesztését összekapcsolni, de politikailag nem valószínű, hogy ez megvalósítható. Így a C és C++ gyakorlati kompatibilitása fokozatosan elveszik.
Ebben a példában a használt fordítótól függően „C ++” vagy „C” lesz:

Program 9.1

#beleértve int main () (printf ("% s \ n", (sizeof ("a") == sizeof (char))? "C ++": "C"); return 0;)

Ennek az az oka, hogy a karakterkonstansok C-ben int, C ++-ban pedig char típusúak, de ezeknek a típusoknak a mérete eltérő.

Alkalmazás életciklus modellek

Életciklus A szoftver egy olyan időszak, amely attól a pillanattól kezdődik, amikor döntés születik a szoftvertermék létrehozásának szükségességéről, és a teljes nyugdíjazással ér véget. Ez a ciklus a szoftver (szoftver) felépítésének és fejlesztésének folyamata. Számos életciklus-modell létezik.
Kaszkád modelléletciklus (eng. vízesés modell) Winston Royce javasolta 1970-ben. Előírja a projekt minden szakaszának egymás utáni végrehajtását szigorúan rögzített sorrendben. A következő szakaszra való áttérés az előző szakaszban végzett munka teljes befejezését jelenti. A követelmények kialakításának szakaszában meghatározott követelményeket szigorúan dokumentálják műszaki specifikációk formájában, és a projektfejlesztés teljes időszakára rögzítik. Minden szakasz egy teljes dokumentációs csomag kiadásával ér véget, amely elegendő ahhoz, hogy a fejlesztést egy másik fejlesztőcsapat folytathassa.
A projekt szakaszai a vízesés modell szerint:

  1. Követelmények kialakítása;
  2. Tervezés;
  3. Végrehajtás;
  4. Tesztelés;
  5. Végrehajtás;
  6. Üzemeltetés és karbantartás.

A vízesés modellben a projekt egyik fázisából a másikba való átmenet feltételezi az előző fázis eredményének teljes helyességét. Nagy projekteknél ezt szinte lehetetlen elérni. Ezért ez a modell csak kis projektek fejlesztésére alkalmas. (W. Royce maga nem ragaszkodott ehhez a modellhez, és iteratív modellt használt).
Iteratív modell
A vízesés modell alternatívája az iteratív és növekményes fejlesztési (IID) modell, amelyet T. Gilbtől szereztek a 70-es években. az evolúciós modell neve. Az IID-modell magában foglalja a projekt életciklusának egy sor iterációra bontását, amelyek mindegyike "mini-projekthez" hasonlít, beleértve az összes olyan fejlesztési folyamatot, amelyet a projekt egészéhez képest kisebb funkcionalitás létrehozására alkalmaznak. Minden iteráció célja a szoftverrendszer olyan működő verziójának beszerzése, amely tartalmazza az összes korábbi és jelenlegi iteráció integrált tartalma által meghatározott funkcionalitást. A végső iteráció eredménye tartalmazza a termék összes szükséges funkcióját. Így minden iteráció befejeztével a termék növekményt - egy növekményt - kap a képességeihez, amelyek ezért evolúciósan fejlődnek.


Az iteratív megközelítés különféle változatait alkalmazzák a legtöbb modern fejlesztési módszertanban:

Fejlesztési folyamat – Rational Unified Process (RUP)

Rational Unified Process (RUP)(Lean Unified Process) a Rational Software (IBM) által támogatott szoftverfejlesztési módszertan. A módszertan a fejlesztés minden szakaszához ad ajánlásokat: az üzleti modellezéstől a kész program teszteléséig és üzembe helyezéséig. Az egységes modellezési nyelvet (UML) használják modellezési nyelvként.
A teljes termékfejlesztési életciklus négy szakaszból áll, amelyek mindegyike egy vagy több iterációt tartalmaz.

  • Kezdeti szakasz (Kezdés)
  • Határozza meg a projekt terjedelmét és a szükséges erőforrások mennyiségét. A termék alapvető követelményei, korlátai és kulcsfontosságú funkciói azonosításra kerülnek. A kockázatokat értékelik. Akciótervezés. A kezdeti szakasz végén értékelik az Életciklus Cél Mérföldkő elérését, ami feltételezi az érintettek közötti megállapodást a projekt folytatásáról.

  • Kidolgozás
  • Dokumentációs követelmények. Futtatható architektúra tervezése, megvalósítása és tesztelése. A feltételek és a költségek pontosítása. A főbb kockázatok csökkentése. A fejlesztési szakasz sikeres befejezése az életciklus-architektúra mérföldkövének elérését jelenti.

  • Építkezés
  • A "Build" fázisban a termék funkcionalitásának nagy része megvalósul: elkészült az alkalmazás tervezése, megírják a forráskódot. Az építési szakasz a rendszer első külső kiadásával és az Initial Operational Capability mérföldkővel zárul.

  • Átmenet
  • Az „Implementation” fázisban elkészül a termék végleges verziója, amely a fejlesztőtől a vásárlóhoz kerül. Ez magában foglalja a béta tesztelési programot, a felhasználói képzést és a termékminőség meghatározását. Ha a minőség nem felel meg a felhasználók elvárásainak vagy a Start fázisban meghatározott kritériumoknak, a Megvalósítási szakasz ismétlődik. Az összes cél elérése a termékkiadás mérföldkövének elérését és a teljes fejlesztési ciklus befejezését jelenti.



"Információs technológia. Rendszer- és szoftverfejlesztés. Szoftver életciklus-folyamatok”. Ezt a szabványt az Orosz Föderáció Szövetségi Műszaki Szabályozási és Metrológiai Ügynöksége fogadta el, és hasonló az ISO / IEC 12207: 2008 nemzetközi szabványhoz. Ez a szabvány általános keretet hoz létre a szoftver életciklus-folyamataihoz, amelyek a szoftveriparban irányíthatók. A szabvány nem kínál konkrét életciklus-modellt. Rendelkezései minden életciklus-modellre, szoftverkészítési módszerre és technológiára vonatkoznak. Leírja az életciklus-folyamatok szerkezetét anélkül, hogy meghatározná, hogyan kell végrehajtani vagy végrehajtani az ezekben a folyamatokban foglalt tevékenységeket és feladatokat.

Óra bemutatása
Üzenettéma
  • Free Software Foundation (FSF)
  • Ingyenes szoftverlicencek
  • Ingyenes szoftver és nyílt forráskódú
  • A programozási nyelvek fejlődésének története
  • A C. C és a C ++ története
  • Sztori
  • C ++ kritika
  • UNIX történelem
  • Spirális szoftver életciklus modell
  • UML (angol egységes modellezési nyelv)
  • Microsoft Solutions Framework
  • IDE a C / C ++ programozáshoz Windows rendszeren
  • C / C ++ fordítók
  • Konzolalkalmazás létrehozása Windows rendszeren
Kérdések
  1. Miért nem alkalmazzák a szoftverfejlesztés vízesés modelljét nagy projektekre?
  2. Mi a különbség a vízesés és az iteratív fejlesztési modellek között?
  3. Sorolja fel a szoftverfejlesztés szakaszait a Rational Unified Process (RUP) módszertanban

A C ++ egy lefordított általános célú programozási nyelv, amely egyesíti a magas és az alacsony szintű programozási nyelvek tulajdonságait. Elődjéhez, a C programozási nyelvhez képest a legtöbb figyelmet az objektumorientált és általános programozás támogatására fordítják. A C ++ programozási nyelv elnevezés a C programozási nyelvből származik, amelyben az unáris ++ operátor a változó növekedését jelöli.

A C ++ programozási nyelvet széles körben használják szoftverfejlesztésre. Nevezetesen különféle alkalmazási programok létrehozása, operációs rendszerek, eszközmeghajtók, valamint videojátékok és még sok más fejlesztése. Björn Stroustrup készítette az 1980-as évek elején. Számos fejlesztést dolgozott ki a C programozási nyelven saját használatra. azok. eredetileg nem tervezték a C ++ programozási nyelv létrehozását.

Támogatja az olyan programozási paradigmákat, mint procedurális programozás, objektum-orientált programozás, általános programozás, modularitást, külön fordítást, kivételkezelést, adatabsztrakciót, objektumok típusainak (osztályainak) deklarálását, virtuális függvényeket biztosít.

Az eredményül kapott nyelvnév a C ++ unáris postfix növekményes operátorból származik (egy változó értékét eggyel növelve). A C + nevet nem használtuk, mert ez szintaktikai hiba a C nyelvben, és ráadásul a nevet egy másik nyelv vette át. A nyelvet azért sem nevezték D-nek, mert "a C kiterjesztése, és nem próbálja meg megoldani a problémákat a C elemek eltávolításával".

A nyelv előnyei:

1. Skálázhatóság. A C ++ nyelven programokat fejlesztenek sokféle platformhoz és rendszerhez.

2. Képes alacsony szinten dolgozni memóriával, címekkel, portokkal.

3. Különböző típusú adatokhoz általánosított algoritmusok készítésének képessége, azok specializációja, és sablonok segítségével összeállítási számítások.

4. Cross-platform. A fordítók nagyon sok platformra elérhetőek, C ++ nyelven sokféle platformra és rendszerre fejlesztenek programokat.

5. Hatékonyság. A nyelvet úgy tervezték, hogy a programozónak maximális irányítást biztosítson a programvégrehajtás szerkezetének és sorrendjének minden vonatkozása felett.

A nyelv hátrányai:

1. A típusbiztonsági elveket sértő számos funkció megléte oda vezet, hogy egy finom hiba könnyen becsúszhat a C ++ programokba.

2. Rossz támogatás a modularitáshoz. Egy külső modul interfész csatlakoztatása egy fejlécfájl előfeldolgozói beszúrásával (#include) jelentősen lelassítja a fordítást, ha nagyszámú modult csatlakoztat.

3. A C ++ nyelvet nehéz megtanulni és lefordítani.

4. Egyes típuskonverziók nem intuitívak. Különösen az előjel nélküli és előjeles számokkal végzett műveletek eredményeznek előjel nélküli eredményeket.

5. Vannak, akik a C ++ hátrányának tartják a beépített szemétszedési rendszer hiányát. Másrészt a C ++-ban elegendő eszköz van a veszélyes pointerek használatának szinte kiküszöbölésére, a szemétgyűjtés megvalósításában és használatában nincsenek alapvető problémák (könyvtárak, nem nyelv szintjén). A beépített szemétszállítás hiánya lehetővé teszi a felhasználó számára, hogy saját erőforrás-gazdálkodási stratégiáját válassza ki.

Mi az oka a C nyelv ilyen állapotának? Történelmileg ez a nyelv elválaszthatatlan a Unix operációs rendszertől, amely ma az újjászületését éli. A 60-as évek az operációs rendszerek és a magas szintű programozási nyelvek kialakulásának korszaka voltak. Ebben az időszakban az operációs rendszert és a fordítókat egymástól függetlenül fejlesztették ki minden számítógéptípushoz, sőt gyakran a saját programozási nyelveiket is (emlékezzünk például a PL / I-re). Ugyanakkor az ebből adódó problémák közös vonása már nyilvánvalóvá vált. Ennek a közösségnek a megvalósítására egy univerzális mobil operációs rendszer létrehozására tett kísérlet volt a válasz, ehhez egy ugyanolyan univerzális és mobil programozási nyelvre volt szükség. A C lett ilyen nyelv, a Unix pedig az első operációs rendszer, amely szinte teljes egészében magas szintű nyelven íródott.

A Unix-szal való szoros kapcsolat olyan tesztelési terepet adott a C-nek, amilyenben akkoriban egyetlen másik nyelv sem rendelkezett. A rendszerprogramozást akkoriban a legnagyobb kihívásnak tartották az iparágban. Többnyire annyira gépfüggőek voltak, hogy sokan egyáltalán nem gondolták másként a megoldásukat, mint az assemblerben. A magas szintű nyelvek alkalmazásprogramozásra szolgáltak, és csak nagyon korlátozottan valósították meg a rendszer működéséhez szükséges funkciókat, gyakran csak egy bizonyos típusú gépen.

A C nyelvet a kezdetektől azért hozták létre, hogy rendszerfeladatokat lehessen benne írni. A C megalkotói nem absztrakt nyelvi végrehajtó modellt dolgoztak ki, hanem egyszerűen megvalósították benne azokat a képességeket, amelyekre a rendszerprogramozás gyakorlatában a legnagyobb szükség volt. Ezek mindenekelőtt a memóriával való közvetlen munka eszközei, a szerkezeti vezérlési struktúrák és a program moduláris felépítése voltak. És valójában semmi más nem szerepelt a nyelvben. Minden más a futásidejű könyvtárba került. Ezért a rosszindulatúak néha strukturált összeszerelőként hivatkoznak a C nyelvre. De nem számít, mit csevegtek, a megközelítés nagyon sikeresnek bizonyult. Neki köszönhetően új szintre került az egyszerűség és a nyelvi képességek aránya.

Van azonban egy másik tényező is, amely meghatározta a nyelv sikerét. Az alkotók nagyon ügyesen osztották fel benne a gépfüggő és független tulajdonságokat. Ennek köszönhetően a legtöbb program univerzálisan írható - teljesítményük nem függ a processzor és a memória architektúrájától. A kód kevés azonos hardverfüggő része lokalizálható külön modulokba. Az előfeldolgozóval pedig olyan modulokat hozhatunk létre, amelyek különböző platformokon lefordítva a megfelelő gépfüggő kódot generálják.

A C nyelv szintaxisa sok vitát váltott ki, a benne alkalmazott rövidítési technikák túlzott használat esetén teljesen olvashatatlanná tehetik a programot. De ahogy Dijkstra mondta, - az eszközök nem okolhatók azért, mert írástudatlanok használják őket. Valójában a C-ben javasolt szintaktikai rövidítések a gyakorlatban leggyakrabban előforduló sztereotip helyzeteknek felelnek meg. Ha a rövidítéseket az ilyen helyzetek kifejező és tömör ábrázolásának idiómáinak tekintjük, akkor előnyeik feltétlen és nyilvánvalóvá válnak.

Így a C univerzális rendszerprogramozási nyelvként jelent meg. De nem maradt e keretek között. A 80-as évek végére a C nyelv, miután a Fortran vezető szerepet játszott, hatalmas népszerűségre tett szert a programozók körében szerte a világon, és az alkalmazott feladatok széles körében kezdték használni. Jelentős szerepet játszott itt a Unix (és így a C) elterjedése az egyetemi környezetben, ahol a programozók új generációját képezték ki.

Mint minden nyelv, a C is fokozatosan fejlődött, de a fejlesztések többsége nem volt radikális jellegű. Ezek közül talán a legjelentősebbnek a funkciótípusok szigorú specifikációjának bevezetését kell tekinteni, ami jelentősen megnövelte a modulok közötti interakció megbízhatóságát C-ben. Az összes ilyen fejlesztést 1989-ben rögzítették az ANSI szabványban, amely még mindig meghatározza a C nyelvet.

De ha minden ilyen felhőtlen, akkor miért van még mindig használatban az összes többi nyelv, ami alátámasztja a létezésüket? A C nyelv Achilles-sarka az volt, hogy túl alacsony szintűnek bizonyult a 90-es években napirendre tűzött feladatokhoz. Ráadásul ennek a problémának két aspektusa van. Egyrészt túl alacsony szintű eszközöket építettek be a nyelvbe - mindenekelőtt memóriával és címaritmetikával dolgozik. Nem hiába, hogy a processzorok bitmélységének változása nagyon fájdalmas sok C programnál. Másrészt a C-ből hiányoznak a magas szintű szolgáltatások - absztrakt adattípusok és objektumok, polimorfizmus, kivételkezelés. Ennek eredményeként a C programokban gyakran a feladatmegvalósítás technikája dominál a tartalmi oldalával szemben.

Az első próbálkozások e hiányosságok kijavítására az 1980-as évek elején kezdődtek. Bjarne Stroustrup az AT&T Bell Labs-tól már ekkor elkezdte a C nyelv kiterjesztését kódnéven fejleszteni. A fejlesztés stílusa teljesen összhangban volt azzal a szellemiséggel, amelyben maga a C nyelv létrejött - bizonyos lehetőségeket bevezettek benne, hogy az egyes emberek és csoportok munkáját kényelmesebbé tegyék. Az új nyelv első kereskedelmi fordítója, a C ++ 1983-ban jelent meg. Ez egy előfeldolgozó volt, amely a programot C kódra fordította, a nyelv tényleges születésének azonban Stroustrup könyvének 1985-ös megjelenése tekinthető. Ettől a pillanattól kezdve a C ++ világszerte népszerűvé vált.

A C ++ fő újítása az osztálymechanizmus, amely lehetővé teszi új adattípusok meghatározását és használatát. A programozó leírja egy osztályobjektum belső reprezentációját, valamint a reprezentáció eléréséhez szükséges függvény-módszerek készletét. A C ++ létrehozásának egyik dédelgetett célja az volt, hogy növeljék a már megírt kódok újrafelhasználásának arányát. Az osztályok fogalma erre egy öröklődési mechanizmust javasolt. Az öröklődés lehetővé teszi új (származott) osztályok létrehozását kiterjesztett reprezentációval és módosított metódusokkal anélkül, hogy ez befolyásolná az eredeti (alap) osztályok lefordított kódját. Ugyanakkor az öröklődés biztosítja a polimorfizmus megvalósításának egyik mechanizmusát - az objektum-orientált programozás alapkoncepcióját, amely szerint ugyanaz a kód használható különböző adattípusok azonos típusú feldolgozására. Valójában a polimorfizmus is a kód újrafelhasználásának biztosításának egyik módja.

Az osztályok bevezetése nem meríti ki a C ++ nyelv összes újítását. Teljes értékű strukturált kivételkezelési mechanizmust valósít meg, aminek hiánya C-ben jóval megnehezítette a megbízható programok írását, a sablonozási mechanizmus a nyelvbe mélyen beágyazott, kifinomult makrogenerációs mechanizmus, amely újabb utat nyit a kód újrafelhasználhatósága felé, és még sok más.

Így a nyelv általános fejlesztési iránya arra irányult, hogy új, magas szintű konstrukciók bevezetésével bővítse képességeit, miközben a lehető legnagyobb mértékben megőrizte a teljes kompatibilitást az ANSI C. műveleteivel, így a programozó ténylegesen leállítja a memóriával és a rendszerrel való közvetlen munkát. függő entitások. A nyelv azonban nem tartalmaz olyan mechanizmusokat, amelyek a fejlesztőt a program helyes felépítésére kényszerítenék, és a szerzők nem adtak ki szisztematikus ajánlást a meglehetősen kifinomult konstrukciók használatára. Nem gondoskodtak egy szabványos osztálykönyvtár időben történő létrehozásáról, amely a leggyakoribb adatstruktúrákat valósítja meg.

Mindez oda vezetett, hogy sok fejlesztő kénytelen volt saját maga feltárni a nyelvi szemantika labirintusait, és önállóan keresni a sikeresen működő idiómákat. Így például a nyelv fejlődésének első szakaszában az osztálykönyvtárak sok alkotója egyetlen osztályhierarchiát akart felépíteni egy közös Object alaposztályú osztályzattal. Ezt az ötletet a Smalltalktól – az egyik leghíresebb objektum-orientált nyelvtől – kölcsönözték. C ++-ban azonban teljesen életképtelennek bizonyult - a gondosan átgondolt osztálykönyvtári hierarchiák rugalmatlanok voltak, és az osztályok munkája sem volt nyilvánvaló. Ahhoz, hogy az osztálykönyvtárak használhatóak legyenek, azokat forrásban kellett szállítani.

A sablon osztályok megjelenése teljesen megcáfolta ezt a fejlődési irányt. Az öröklődést csak azokban az esetekben kezdték el használni, amikor egy meglévő osztály speciális verzióját kellett generálni. A könyvtárak elkezdtek különálló osztályokból és kicsi, egymással nem összefüggő hierarchiákból állni. Azonban az út során a kód újrafelhasználása hanyatlásnak indult, mivel a C ++ nem képes polimorf módon használni a független hierarchiákból származó osztályokat. A sablonok széles körben elterjedt használata a lefordított kódok mennyiségének elfogadhatatlan növekedéséhez vezet – ne felejtsük el, hogy a sablonok megvalósítása makrógenerálási módszerekkel történik.

A C szintaxisból örökölt C ++ egyik legsúlyosabb hátránya, hogy a fordító hozzáfér az összes használt osztály belső szerkezetének leírásához. Következésképpen egy könyvtárosztály reprezentációjának belső struktúrájában bekövetkezett változás ahhoz vezet, hogy minden olyan programot újra kell fordítani, ahol ezt a könyvtárat használják. Ez nagymértékben korlátozza a könyvtárfejlesztőket a korszerűsítés terén, mert egy új verzió kiadásakor fenn kell tartaniuk a bináris kompatibilitást az előzővel. Ez a probléma az, ami miatt sok szakértő elhiteti, hogy a C ++ nem alkalmas nagy és szupernagy projektek futtatására.

Pedig a felsorolt ​​hiányosságok, sőt a nyelvi szabvány elérhetetlensége ellenére is (ez több mint tizenöt év használat után történt!), a C ++ továbbra is az egyik legnépszerűbb programozási nyelv. Erőssége elsősorban a C nyelvvel való szinte teljes kompatibilitásban rejlik. Ennek köszönhetően a C ++ programozók hozzáférhetnek a C nyelven végzett összes fejlesztéshez. Ugyanakkor a C ++, osztályok használata nélkül is , számos olyan fontos kiegészítő funkciót és kényelmet vezet be a C-be, hogy sokan egyszerűen továbbfejlesztett C-ként használják. ...

Ami a C ++ objektummodellt illeti, amíg a programod nem túl nagy (több százezer sor), addig használhatod. A komponensszoftverek legújabb trendje csak erősíti a C ++ pozícióját. Az egyes komponensek fejlesztésekor a C ++ hátrányai még nem jelentkeznek, a komponensek működő rendszerbe kapcsolása már nem nyelvi, hanem operációs rendszer szinten történik.

Az elmondottak fényében a C ++ kilátásai nem tűnnek borúsnak. Bár a programozási nyelvek piacán a monopólium nem ragyog neki. Talán csak bátran állíthatjuk, hogy ez a nyelv nem fog túlélni egy újabb modernizációt-bővítést. Nem csoda, hogy amikor a Java megjelent, akkora figyelmet fordítottak rá. A nyelv, amely szintaxisában közel áll a C ++-hoz, ami azt jelenti, hogy sok programozó számára ismerősnek tűnik, megszabadult a C ++ legkirívóbb hiányosságaitól, amelyeket a 70-es évektől örököltek. Úgy tűnik azonban, hogy a Java nem éri el azt a szerepet, amelyet egyesek rábíztak.

A C / C ++ nyelvek különleges szerepe a modern programozásban szinte értelmetlenné teszi olyan konkrét címek megadását az interneten, ahol anyagokat találhat róluk. Egyszerűen túl sok ilyen hely van. Ha azonban többet szeretne megtudni a C ++ fejlődéséről, akkor kezdje egy kis cikkel. http://citforum.syzran.ru/programming/prg96/76.shtml.

Alekszandr Szergejev, [e-mail védett]
Cikk a BYTE magazinból / Oroszország, 2000. március

A leírt nyelvek gyakorlati használatának egyértelmű bemutatása érdekében olyan problémát választottunk, amelyben normál bemenetből vagy fájlból egész számokat kellett megadni, majd csak páratlanokat kellett kiadni, és fordítva. rendelés. Ez az egyik legegyszerűbb feladat, amelynek megoldásához alapvetően tömbökkel, hurkokkal, elágazásokkal és I / O-val kell dolgozni, és lehetővé teszi a szubrutinhívások demonstrálását is. Sőt, látható és könnyen észlelhető.

Listázás 1.C

1 #beleértve / * Bemeneti-kimeneti funkciók csatlakoztatása * / 2 3 void main (void) 4 (5 int М; / * 10 egész számból álló tömb, 0-tól számítva * / 6 int N; 7 for (N = 0; N)<10; ++N) /* Вводим не более 10 чисел */ 8 if (EOF == scanf ("%d, M+N)) 9 break; /* Если конец файла, прерываем цикл */ 10 11 for (-N; N>= 0; --N) / * Menjen végig a tömbön fordított irányban * / 12 if (M [N]% 2) / * sorrendben, és nyomtasson páratlanokat * / 13 printf ("% d \ n", M [N]); 14 )

  • 3. sor. A C / C ++ nyelvben a program végrehajtása mindig a fő funkcióval kezdődik.
  • 7. és 11. sor. A ciklusfejlécben pontosvesszővel adjuk meg a kezdeti beállítást, a folytatási feltételt és a ciklusparaméter újraszámításának szabályát. Tevékenységek ++ és -/- - a C nyelv leghíresebb rövidítése, ami egy változó növelését és csökkentését jelenti, azaz értékének eggyel növelését és csökkentését.
  • 8. sor. Funkció scanf beírja az első paraméter által megadott formátumnak megfelelően azoknak a változóknak az értékeit, amelyek címét a többi paraméter megadja. Itt a cím, ahová az értéket beírtuk, a címaritmetika segítségével számítja ki a tömb helyének címére M ellensúlyozza N elemeket. Ugyanez a hatás érhető el írással & M [N].
  • 12. sor. Művelet % kiszámolja az osztás maradékát. Kezelői állapot ha teljesítettnek tekinthető, ha a kifejezés számértéke nem nulla.
  • 13. sor. Funkció printf- a formátum szerinti nyomtatás ugyanúgy működik scanf, de a címek helyett a megjelenítendő értékeket adja át.
1 #beleértve 2 3 sablon osztály 4. tömb (5 nyilvános: Tömb (T méret = 1): M (új T), N (Méret), n (0) () 6 Tömb (érvénytelen) (M törlése;) 7 T Count (void) const ( return n;) 8 T operátor (int i) const (return M [i];) 9 void Add (T Data); 10 private: 11 T * M; // Lefoglalt memória címe 12 int N, n; // N - kiosztott, n - használt 13); 14 15 sablon void Array :: Add (T Data) 16 (ha (N-n) // Ha minden le van foglalva 17 (int * P = új T; // szóköz van használva, allokálj több 18-at az (int i = 0; i) A; // 28-as változó méretű egész számok tömbje while (1) // Végtelen 29-es ciklus (int N; 30 cin >> N; // cin - standard 31. bemeneti adatfolyam if (cin.eof ()) break; // Kilépés a ciklus a fájl végére 32 A.Hozzáadás (N); // A beírt szám hozzáadása a 33-as tömbhöz) 34 for (int N = A.Count () - 1; N> = 0; --N) // Végrehajtás a tömb 35 if ( A [N]% 2) 36 cout<és memóriát szabadít fel
  • 3-13. sor. A sablon osztály deklarálva van Sor paraméterrel T... Ez egy változó méretű objektumok tömbje, mint pl T... Természetesen feladatunkban nincs szükség sablon osztály használatára. Mindazonáltal azt akartuk bemutatni, hogy miként jön létre olyan polimorf adatstruktúra a C ++ nyelven, amely bármilyen típusú elemmel működik.
  • 5. sor. Osztály konstruktor. Inicializálja az objektum reprezentációját. Például terepen M a művelet által elrendelt memóriablokk címét írjuk be új T.
  • 8. sor. Példa egy művelet túlterhelésére. Funkció operátor akkor lesz meghívva, amikor szögletes zárójelek jelennek meg az osztályobjektumtól jobbra Sor.
  • 9. sor. Ez a funkció a legfontosabb a megvalósításban. Elemeket ad hozzá a tömbhöz, szükség szerint bővíti azt. Mivel összetettebb, mint a többi, definíciója az osztályleírásból származik. Az osztály törzsében leírt függvények C ++-ban nem hívással, hanem inline helyettesítéssel valósulnak meg. Ez felgyorsítja a programot, bár növeli a méretét.
  • 15-24. sor. Funkció meghatározása Arrau :: Add (T)(egyébként ez a teljes neve).
  • 27. sor. Létrehozunk egy típusú objektumot Sor... Templom Aggau típus szerint paraméterezve int.


Tetszett a cikk? Oszd meg