Definíció és inicializálása adatok tárgyak

Most, hogy megragadják a felhasználó figyelmét, hogy vypol-rövid tesztet. Mi jelenik meg a két szám számszerű sorrendben, és figyelmezteti a felhasználót kitalálni elképesztöeröés következik az értékeket a sorrendben. Például,







Az értékek 2,3 két egymást követő eleme egy számszerű sorrendben. Mi a következő érték?

Ezek az értékek - a harmadik és negyedik elemek az alábbi, egymást követő Fibonacci -: .. 1, 1, 2, 3, 5, 8, 13, stb A szekvenciája Fibonacci Áramlási sebesség kezdődik két elem - egység. Minden egymást követő elem összege az előző két összetevőből.

Ha a felhasználó belép egy 5, gratulálunk neki, és megkérdezi, akarja próbálni egy másik numerikus követőt-ség. Bármilyen más beviteli érték - rossz, és arra kérjük a felhasználót, ha azt akarja, hogy jósol még.

Fenntartani érdeklődés a program, mi fogja a folyószámla alapján az arány helyes otve-nek, hogy a próbálkozások száma.

A program előírja, legalább öt lehetőség: a húr objektum osztály a név mentéséhez USER-la, három egész osztályú létesítmények tárolásához kísérletek fordulni, a kísérletek száma, a szám a sikeres kísérletet, és az osztály szám úszó tárgyak emlékezni a számla.

Annak meghatározására, az adatok tárgyak, meg kell, hogy adja meg nevét és adatait típusát. A nevek bármilyen kombinációja s-betű, szám, aláhúzás. Levelek a kis- és nagybetűket. A nevek user_name, Felhasználónév, USER_NAME, a felhasználó_neve tárgya különböző tárgyakat.

A név nem kezdődhet számmal. Például l_name rossz, name_l - helyesen. A név nem lehet együtt ősszel a legfontosabb szavakat a nyelvet. Például törölni - a kulcs szó a nyelven, hogy ne használja azt a programban. (Ez a magyarázata annak, hogy az üzemeltető távolítsa el a karaktert a húr osztály - törli (), de nem törölt).

Minden objektum lehet valamilyen adatot. Az objektum neve lehetővé teszi számunkra, hogy foglalkozzon vele közvetlenül. Az adatok típusa határozza meg, az értéktartomány tárolt objektum, és az összeget a memória tárolásához szükséges a betétek ezt az értéket.

Láttuk az előző definíció user_name le-Sec. Visszük meghatározása azonos az új program:

#include húr user_name;

Osztály - szoftverek adattípus. C ++ támogatja, így ugyanazokat a beépített adattípusok: bu-Leva, egész, lebegőpontos és string. Társított kulcsszavak mindegyikük, lehetővé teszi számunkra, hogy milyen típusú adatokat. Például, hogy tárolja az értékeket-CIÓ a felhasználó által megadott, akkor határozza meg a szerves az első típus:

Int - nyelv kulcsszó meghatározza, hogy usr_val objektum - egész típus. Mindkét tárgy: a próbálkozások száma, amelyeket a felhasználó-lete és a helyes válaszok száma - objektumok egy típust. Az egyetlen különbség az, hogy szeretnénk, hogy nekik egy kezdeti értéket „O”. Mi lehet levezetni az egyes on-line üzletszerű:







Int num_.trіes = 0; int num_right = 0;

Vagy meghatározza azokat egy sorba, vesszővel elválasztva:

Int num_tries = 0, num_right = 0;

Általánosságban elmondható, hogy jobb, ha a szabályt követni-vat inicializálja egy adat objektumot, akkor is, ha az érték csak azt jelzi, hogy az objektum nincs értéke egyáltalán hasznos. Nem init-lizált usr_val, mert az érték kerül elő közvetlenül a felhasználói input, mielőtt a program valahogy használ egy tárgyat.

Alternatív inicializálás lehetőség -, hogy használja az úgynevezett strukturális szintaxis

Int num_.tries (0);

Miért van két inicializálás szintaxis? Még rosszabb, hogy miért beszélek erről? Nos, lássuk, ha a magyarázat felel mindkét kérdésre.

Segítségével értékadás inicializációjú meg-CIÓ a nyelv C. Ez jól működik adat objektumok beépített típusok és osztályok objektumok lehet inicializálni egyetlen érték, például egy string osztály:

Karakterlánc sorozat_neve = "Fibonacci";

Ez a módszer azonban nem olyan jó az osztály tárgyak, amelyek megkövetelik több érték inicializálása például az osztály standard könyvtár komplex számok, ahol minden szükséges két érték: az első - az dei valós része, a második - a képzeletbeli. Alternatív strukturális szintaxis vezették be, hogy támogassa a beállított értékű-inicializáló:

#include összetett pureі (0, 7);

Fura jelölést követő zárójelben komplex, azaz, hogy az osztály a komplex számok - Sablon osztályban. template osztály lehetővé teszi számunkra, hogy meghatározza egy osztály nélküli sajátosságait-CIÓ adattípus egy vagy az összes tagjai az osztály.

Az osztály a komplex számok, például két tagból, az új adatok objektumot. Az egyik egy igazi része a Num-la, a második - a képzeletbeli. Ezeket a tagokat az adatok számát float típusú, de mit? C ++ támogatja háromféle lebegőpontos számok: egyszeres pontosságú benyújtott kulcsszó úszó; dupla pontosságú, képviseli a kulcsszó kettős; és kiterjesztett

Pontosság, feltéve két kulcsfontosságú hosszú dupla szó.

Sablon motor osztály lehetővé teszi a programozó-ró meghatározását az adatok típusát a sablon osztályt. Ez ad neki arra, hogy helyezzen be egy „sapkát”, amit később kitölti a valós adatok típusát. Az előző példa használja az osztály adattípus kiválasztása komplexek derék-dupla számok.

Nos, talán több kérdést, mint választ félig chaetsya. Ez abból adódik, hogy a minták alapján der életben C ++, két inicializálás szintaxis beépített adattípusok. Amikor a beépített adattípusok és a program adott osztály típusok különböző ren- alizatsionny szintaxis, lehetetlen, hogy írjon egy sablont, társ-tory támogatással és beépített osztályt, és egy osztály típusú adatokat. Egyesítés szintaxis leegyszerűsíti a tervezési sablonok. Sajnos, a nyilvánosságra hozatal szintaxis vezet még nagyobb zűrzavart!

Egy felhasználói fiók kell lennie lebegőpontos érték, mivel nem egész szám arányt. Mi határozza meg, megosztására típusú kettős:

Dupla usr_score = 0,0;

Azt is meg kell tartani a helyét a felhasználó válaszait Mondd igen / on: Legyen egy próbát? Próbáljon ki egy másik sorozatot?

Mi lehet menteni a felhasználó választ a karakteres adat objektum:

Cout « "Try másik szekvenciával, Y / N ??"; cin »usr_more;

Kulcsszó char kifejezés karakter típus. Határolt aposztróf szimbólum jelöli 'a', '7', „; ”Stb Neko-torye épített speciális karakter jelölése vedeny alatti (néha escape szekvencia) ..:

n „újsor (új sor), a "t" fület (fül)"


Kapcsolódó cikkek