Sisällysluettelo
- Mikä on C++?
- Miksi käyttää C++:aa
- ominaisuudet
- Paikallisen ympäristön asetukset
- C++ Basic Input/Output
- Vakiolähtövirta (cout)
- Vakiosyöttövirta (cin)
- Normaali loppurivi (endl)
- C++-muuttujat
- C++ Tunnisteet
- C++ tietotyypit
- C++ Vakiot/Literaalit
- C++-tallennusluokat
- C++-muokkaustyypit
- Operaattorit C++:ssa
- C++ silmukat
- Päätöksentekolausunnot
- C++ toiminnot
- C++ numerot
- C++-taulukot
- C++ merkkijonot
- C++ osoittimet
- C++-viitteet
- C++ Päivämäärä ja aika
- C++ tietorakenteet
- C++-luokat ja objektit
- C++-perintö
- C++ pääsyn muokkaajat
- C++ ylikuormitus
- C++-polymorfismi
- C++-tietojen abstraktio
- C++-tietojen kapselointi
- C++ abstrakti luokat
- C++ poikkeusten käsittely
- C++ dynaaminen muisti
- C++-malleja
- C++ esiprosessorit
- C++ signaalinkäsittely
- C++ Web-ohjelmointi
- Johtopäätös
- Suositellut artikkelit
Mikä on C++?
C++ on monialustainen kieli, jota käytetään tehokkaiden sovellusten luomiseen. Bjarne Stroustrup kehitti sen C-kielen laajennuksena. C++ antaa ohjelmoijille mahdollisuuden hallita järjestelmän resursseja ja muistia. Kieli päivitettiin kolme merkittävää kertaa vuosina 2011, 2014 ja 2017 muotoihin C++11, C++14 ja C++17.
Miksi käyttää C++:aa
- C++ on yksi suosituimmista ohjelmointikielistä.
- C++ löytyy käyttöjärjestelmistä, GUI:ista ja sulautetuista järjestelmistä.
- Se on olio-ohjelmointikieli, joka antaa ohjelmille selkeän rakenteen ja mahdollistaa koodin uudelleenkäytön, mikä alentaa kehityskustannuksia.
- Se on kannettava ja sitä voidaan käyttää sovellusten kehittämiseen, jotka voidaan mukauttaa useille alustoille.
- Koska C++ on lähellä C#:a ja Java , sen avulla ohjelmoijien on helppo vaihtaa C++:aan tai päinvastoin.
ominaisuudet
- Se vaatii otsikon.
- Käytä nimiavaruutta std; varoittaa kääntäjää käyttämään nimiavaruutta std.
- Rivi int main() on pääominaisuus, josta ohjelman suoritus alkaa.
- Seuraava rivi päättyy<< Hello World; the word Hello World is reflected on the keyboard.
- Seuraava rivi palauttaa 0; main()-funktio päättyy.
- int a;
- int _ab;
- int a30;
- int 4;
- intxy;
- int kaksinkertainen;
- Totuuden arvo edustaa totta.
- False-arvo, joka edustaa väärää.
- allekirjoitettu
- allekirjoittamaton
- pitkä
- lyhyt
- Aritmeettinen operaattori
- Looginen operaattori
- Bitwise-operaattori
- Tehtäväoperaattori
- Relaatiooperaattori
- Muu Operaattori
- jos lausunto
- jos..muut lausunnot
- sisäkkäisiä if-lauseita
- jos-muu-jos tikkaat
- Hyppylauseet:
- tauko
- jatkaa
- mene
- palata
- int – tallennettavan elementin tyyppi
- y – taulukon nimi
- 4 – taulukon koko
- Merkkijonot, jotka ovat merkkijonoluokan objekteja
- C-kielet
- Määritä ensin osoitinmuuttuja
- Määritä nyt muuttujan osoite osoittimelle käyttämällä (&), joka palauttaa kyseisen muuttujan osoitteen.
- Pääsy osoitteeseen tallennettuihin arvoihin käyttämällä (*):ta, joka palauttaa sen operandin määrittämässä osoitteessa sijaitsevan muuttujan arvon.
- Sisään monitieperintö, johdettu luokka luodaan toisesta johdetusta luokasta ja sama perusluokka toisessa johdetussa luokassa. Ei tue tätä perintöä. NETTO Kielet, kuten C#, F# jne.
- Julkinen
- Yksityinen
- Suojattu
- Luokassa julkisiksi ilmoitettuja jäseniä voidaan käyttää mistä tahansa ohjelman kohdasta.
- Luokassa yksityisiksi ilmoitettuihin jäseniin pääsee vain luokasta käsin. Niitä ei saa käyttää mistään koodin osasta luokan ulkopuolelta.
- Tee kaikista datajäsenistä yksityisiä.
- Luo julkinen setter- ja getter-funktio jokaiselle datajäsenelle siten, että set-funktio asettaa datajäsenen arvon ja get-funktio saa datajäsenen arvon
- Dynaamisen tilan luominen muistiin
- Osoitteen tallentaminen osoittimeen
- Toimintomallit
- Luokkamallit
- makro
- Tiedoston sisällyttäminen
- Ehdollinen kokoelma
- Muut direktiivit
Paikallisen ympäristön asetukset
Olisi hyvä, jos tietokoneessasi olisi seuraavat ohjelmistot.
Se on todellinen C++-kääntäjä, jota käytetään kääntämään lähdekoodisi lopulliseksi suoritettavaksi ohjelmaksi. Useimmat C++-kääntäjät eivät välitä siitä, minkä laajennuksen annat lähdekoodillesi. Yleisimmin käytetty kääntäjä on GNU C/C++ -kääntäjä.
Ohjelmisto käyttää sitä kirjoittamiseen. Esimerkkejä ovat Windows Notepad, OS Edit, Short, Epsilon, EMACS ja Vim- tai VI-komennot. Editorilla luomiasi tiedostoja kutsutaan lähdetiedostoiksi ja C++-tiedostoiksi .cpp, .cp tai .c. Jotta voit aloittaa C++-ohjelmoinnin, tekstieditorin on oltava paikallaan.
Tarkastellaan nyt, mitä luokka, objekti, menetelmät ja ilmentymämuuttujat tarkoittavat.
ESIMERKKI
|_+_|OUTPUT
|_+_|Katsotaanpa edellä mainittuja ohjelman eri osia −
C++ Basic Input/Output
C++ I/O -toiminta käyttää virtauskonseptia. Virta on tavujen tai tietovirran sarja. Se tekee suorituksesta nopeaa.
Jos tavuja virtaa päämuistista laitteeseen, kuten tulostimeen, näyttöön tai verkkoyhteyteen jne., tätä kutsutaan nimellä lähtötoiminta.
Jos tavuja virtaa laitteesta, kuten tulostimesta, näytöstä, verkkoyhteydestä jne., päämuistiin, tätä kutsutaan ns. syöttötoiminto.
Vakiolähtövirta (cout)
The kustannus on ennalta määritetty objekti ostream luokkaa. Se on kytketty tulostuslaitteeseen, joka on yleensä näyttö. Coutia käytetään yhdistämään virran lisäysoperaattoriin tulosteen näyttämiseksi konsolissa
ESIMERKKI
|_+_|OUTPUT
|_+_|Vakiosyöttövirta (cin)
The gin on ennalta määritetty objekti. Se on kytketty syöttölaitteeseen, joka on yleensä näppäimistö. cin:iä käytetään liittämään virranpoistooperaattoriin (>>) konsolin syötteen lukemiseksi.
ESIMERKKI
|_+_|OUTPUT
|_+_|Normaali loppurivi (endl)
The endl on luokan ennalta määritetty objekti. Sitä käytetään uusien rivimerkkien lisäämiseen ja virtauksen tyhjentämiseen.
ESIMERKKI
|_+_|OUTPUT
|_+_|C++-muuttujat
Muuttuja on muistipaikan nimi. Sitä käytetään tietojen tallentamiseen. Arvoa voidaan muuttaa, ja sitä käytetään useita kertoja. Se on tapa esittää muistipaikka helposti tunnistettavan symbolin avulla. Muuttuja voi sisältää aakkoset, alaviivat ja numerot. Muuttujan nimi voi alkaa aakkosella ja vain alaviivalla. Se ei voi alkaa numerolla.
Muuttujan nimessä ei saa olla välilyöntejä.
Muuttujan nimi ei saa olla varattu sana tai avainsana, esim. char, float jne.
Kelvolliset muuttujien nimet:
Virheelliset muuttujien nimet:
C++-tunnisteet
C++-tunnistetta käytetään muuttujan, funktion, luokan, moduulin tai minkä tahansa muun käyttäjän määrittämän kohteen tunnistamiseen. Se alkaa kirjaimilla A–Z tai a–z tai alaviivalla (_), jota seuraa nolla tai useampi kirjain ja 0–9. C++ ei salli välimerkkejä, kuten @, $ ja %, tunnisteiden sisällä. Se on isot ja pienet kirjaimet huomioiva ohjelmointikieli. Siten Työvoima ja työvoima ovat kaksi eri tunnistetta C++:ssa.
C++ tietotyypit
Tyyppi | Avainsanat |
---|---|
Merkki | hiiltyä |
Boolean | bool |
Liukuluku | kellua |
Kaksoisliukuluku | kaksinkertainen |
Kokonaisluku | int |
Arvoton | mitätön |
Leveä luonne | wchar_t |
Tyyppi | Tyypillinen bittileveys | Tyypillinen alue |
hiiltyä | 1 tavu | -127 - 127 tai 0 - 255 |
allekirjoittamaton merkki | 1 tavu | 0-255 |
allekirjoitettu char | 1 tavu | -127-127 |
wchar_t | 2 tai 4 tavua | 1 leveä merkki |
int | 4 tavua | -2147483648 - 2147483647 |
allekirjoittamaton int | 4 tavua | 0 numeroon 4294967295 |
allekirjoitettu int | 4 tavua | -2147483648 - 2147483647 |
lyhyt int | 2 tavua | -32768 - 32767 |
kellua | 4 tavua | |
allekirjoittamaton lyhyt väliv | 2 tavua | 0 - 65 535 |
allekirjoitettu lyhyt int | 2 tavua | -32768 - 32767 |
pitkä int | 8 tavua | -2 147 483 648 - 2 147 483 647 |
allekirjoitettu pitkä int | 8 tavua | sama kuin pitkä int |
allekirjoittamaton pitkä välit | 8 tavua | 0 - 4 294 967 295 |
pitkä pitkä int | 8 tavua | -(2^63) - (2^63)-1 |
allekirjoittamaton pitkä pitkä int | 8 tavua | 0 - 18 446 744 073 709 551 615 |
kaksinkertainen | 8 tavua | |
pitkä tupla | 12 tavua |
C++ Vakiot/Literaalit
Vakiot viittaavat kiinteisiin arvoihin, joita ohjelma voi muuttaa, ja niitä kutsutaan literaaleiksi.
Vakiot voivat olla mitä tahansa raakatietotyyppiä, ja ne on jaettu kokonaislukuihin, merkkeihin, liukulukuihin, merkkijonoihin ja loogisiksi arvoiksi.
Kokonaisluku Literaalit
Kokonaislukuliteraali on desimaali-, oktaali- tai heksadesimaalivakio.
Kokonaislukuliteraalilla on pääte, joka on L:n ja U:n yhdistelmä pitkälle ja etumerkittömälle, vastaavasti. Suffiksi voi olla pieni tai iso kirjain ja se voi olla missä tahansa järjestyksessä.
Esimerkiksi: 212, 215u, 0xFeeL, 078, 032UU
Liukulukukirjaimet
Liukulukuliteraalissa on kokonaislukuosa, murto-osa, desimaalipilkku ja eksponenttiosa. Voit esittää liukulukuliteraaleja joko desimaalimuodossa tai eksponentiaalisessa muodossa.
Kun edustat desimaalimuotoa, sinun on sisällytettävä desimaalipilkku, eksponentti tai molemmat. Vaikka käytät eksponentiaalista muotoa, sinulla on oltava murto-osa, kokonaislukuosa tai molemmat. Etumerkkinen eksponentti johdetaan E:llä tai e:llä.
Boolen kirjaimet
On olemassa kaksi Boolen literaalia
Hahmon kirjaimet
Merkiliteraalit on suljettu lainausmerkeissä. Jos literaali alkaa L:llä, se on laajamerkkinen literaali ja se tulee tallentaa wchar_t-tyyppiseen muuttujaan. Muuten se on kapea merkkiliteraali ja se on tallennettu yksinkertaiseen char-tyyppiseen muuttujaan.
Pakojakso | Merkitys |
\ | merkki |
' | 'hahmo |
merkki | |
? | ? merkki |
o | Varoitus tai kello |
Askelpalautin | |
f | Lomakesyöttö |
Uusi rivi | |
Vaunun palautus | |
Vaaka-välilehti | |
v | Pysty välilehti |
ooo | Oktaaliluku yhdestä kolmeen numeroa |
xhh . . . | Heksadesimaaliluku, jossa on yksi tai useampi numero |
C++-tallennusluokat
Automaattinen tallennusluokka
Se on oletusarvoinen tallennusluokka kaikille paikallisille muuttujille.
SYNTAKSI
|_+_|Rekisterin tallennusluokka
Niitä käytetään määrittämään paikallisia muuttujia, jotka tallennetaan rekisteriin RAM:n sijaan. Se tarkoittaa, että muuttujan enimmäiskoko on yhtä suuri kuin rekisterin koko, eikä siihen voi soveltaa '&'-operaattoria.
SYNTAKSI
|_+_|Staattinen tallennusluokka
Se käskee kääntäjää pitämään paikallisen muuttujan olemassa ohjelman aikana sen sijaan, että se luo ja tuhoaisi sen. Paikallisten muuttujien tekeminen staattisiksi tarjoaa heille mahdollisuuden säilyttää arvonsa funktiokutsujen välillä.
Ulkoinen tallennusluokka
Sitä käytetään antamaan viittaus globaaliin muuttujaan, joka näkyy jokaisessa ohjelmatiedostossa. Kun käytät 'extern', muuttujaa ei voi alustaa.
Muuttuva tallennusluokka
Muuttuva määrite koskee luokan objekteja. Se tarjoaa objektin jäsenen ohittamaan const-jäsenfunktion. Toisin sanoen muuttuvaa jäsentä voidaan muokata const-jäsenfunktiolla.
C++-muokkaustyypit
C++ tarjoaa char-, int- ja double-tietotyypit, jotta niitä edeltää muuntaja. Modifikaattorilla muutetaan perustyypin merkitystä niin, että se sopii tarkemmin eri tilanteiden tarpeisiin.
Tietotyyppien modifioijat on mainittu alla−
Merkitty, etumerkitön, pitkä ja lyhyt määritteitä sovelletaan kokonaislukukantatyyppeihin. Lisäksi allekirjoitettu ja allekirjoittamaton käytetään char, ja long käytetään double.
Allekirjoitettuja ja allekirjoittamattomia määritteitä käytetään pitkien tai lyhyiden määritteiden etuliitteinä.
Karsinnan tyypit
ESIMERKKI
|_+_|OUTPUT
|_+_|Operaattorit C++:ssa
Operaattori on symboli, joka auttaa kääntäjää suorittamaan tiettyjä matemaattisia tai loogisia manipulaatioita. C++:ssa on useita sisäänrakennettuja operaattoreita ja se tarjoaa seuraavan tyyppisiä operaattoreita −
Aritmeettinen operaattori
Aritmeettiset operaattorit ovat vain operaattoreita, joita käytetään suorittamaan aritmeettisia operaatioita muuttujien tai kahden arvon välillä.
Operaattorit | Kuvaus | Syntaksi |
+ | Lisää kaksi operandia | a+b |
* | Kertoo kaksi operandia | a*b |
– | Vähentää kaksi operandia | a-b |
/ | Jakaa ensimmäisen operandin toisella | a/b |
% | Palauttaa jäännöksen, kun ensimmäinen operandi jaetaan toisella | a%b |
++ | Se lisää kokonaisluvun arvoa yhdellä | a++ |
— | Se pienentää kokonaisluvun arvoa yhdellä | - |
Looginen operaattori
C++:n loogiset operaattorit yhdistävät muuttujien tosi- tai epätosiarvot, jotta voit selvittää niiden tuloksena olevan totuusarvon.
Operaattorit | Kuvaus | Syntaksi |
Tai (||) | Tosi, jos jompikumpi operandi on tosi | (A || B) on totta. |
Ja (&&) | Totta, jos molemmat operandit ovat tosia | (A && B) on väärä. |
Ei (!) | Jos ehto on tosi, Looginen EI -operaattori tekee epätosi. | !(A & B) on totta. |
Bittikohtainen operaattori
C++:ssa bittikohtaiset operaattorit suorittavat bittikohtaisia laskutoimituksia kokonaisluvuille. Bittioperaattori: Palauttaa arvon 1, jos molemmat bitit ovat 1 muut 0. Esimerkki: a = 10 = 1010 (binääri) b = 4 = 0100 (binääri a & b = 1010 & 0100 = 0000 = 0 (desimaali) Bittikohtaisesti tai operaattori: Palauttaa 1, jos jompikumpi bitistä on 1 muu 0.
Operaattorit | Kuvaus | Syntaksi |
>> | Binäärisiirto oikealle x>> | x>> |
<< | Binäärinen siirto vasemmalle | x<< |
^ | Binääri XOR | x ^ y |
& | Binääri JA | x & y |
| | Binääri TAI | x | Y |
~ | Binaari EI | ~x |
Tehtäväoperaattori
Määritysoperaattorit antavat muuttujille arvoja. a = 5 on osoitusoperaattori, joka asettaa arvon 5 oikealla muuttujaan a vasemmalla.
Operaattorit | Kuvaus | Syntaksi |
= | Oikean puolen lausekkeen arvojen määrittäminen vasemman puolen operandille. | a=b+c |
+= | Lisää oikean puolen operandi vasemman puolen operandilla ja määritä sitten vasemmalle operandille. | a+=b a=a+b |
-= | Vähennä oikean operandi vasemman operandista ja määritä se sitten vasemmalle operandille. | a-=b a=a-b |
/= | Jaa vasemmanpuoleinen operandi oikeanpuoleisella operandilla ja määritä sitten vasemmalle operandille. | a/=b a=a/b |
%= | Ota moduuli käyttämällä vasenta ja oikeaa operandia ja anna tulos vasemmalle operandille. | a%=b a=a%b |
*= | Laske eksponenttiarvo operandien avulla ja anna arvo vasemmalle operandille. | a*=b a=a*b |
&= | Suorittaa bittikohtaisen AND-operandin ja antaa arvon vasemmalle operandille. | a&=b a=a&b |
|= | Suorittaa bittikohtaisen TAI-operandin ja antaa arvon vasemmalle operandille. | a|=b a=a|b |
^= | Suorittaa bittikohtaisen TAI-operandin ja antaa arvon vasemmalle operandille. | a^=b a=a^b |
>>= | Suorita bittikohtainen siirto oikealle operandille ja anna arvo vasemmalle operandille. | a>>=b a=a>>b |
<<= | Suorittaa bittisiirron vasemmalle operandille ja määrittää arvon vasemmalle operandille. | to<<= b a= a << b |
Relaatiooperaattori
Relaatiooperaattorit ovat operaattoreita, joita käytetään kahden arvon tai objektin vertaamiseen.
Operaattorit | Kuvaus | Syntaksi |
> | Suurempi kuin | x > y |
< | Vähemmän kuin | x |
== | Yhtä suuri | x == y |
!= | Ei tasa-arvoista | x != y |
>= | Suurempi tai yhtä suuri kuin | x >= y |
<= | Pienempi kuin tai yhtä suuri kuin | x<= y |
Muut operaattorit
Operaattori | Kuvaus |
Kunto? X: Y | Jos ehto on tosi, se palauttaa X:n arvon, muuten palauttaa Y:n arvon. |
, | Se aiheuttaa toimintosarjan suorittamisen. Pilkun arvo on luettelon viimeisen lausekkeen arvo pilkulla erotettuna. |
koko | Se palauttaa muuttujan koon. Esimerkiksi sizeof(a), jossa 'a' on kokonaisluku ja palauttaa 4. |
* | Se on osoitin muuttujaan. Esimerkiksi *var; osoittaa muuttujaan var. |
Heittää | Se muuntaa yhden tietotyypin toiseksi. |
. (piste) ja -> (nuoli) | Niitä käytetään viittaamaan luokkien, rakenteiden ja ammattiliittojen yksittäisiin jäseniin. |
& | Se palauttaa muuttujan osoitteen. |
C++ silmukat
silmukalle
C++ for -silmukkaa käytetään ohjelman osan iterointiin useita kertoja. Jos iteraatioiden lukumäärä on kiinteä, on suositeltavaa käyttää silmukalle kuin while- tai do-while-silmukoita.
C++ for silmukka on sama kuin C/C#. Voimme alustaa muuttujat, tarkistaa ehdon ja lisätä/vähentää arvoa.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|OUTPUT
|_+_|Nested For Loop
C++:ssa voit käyttää for-silmukkaa toisen for-silmukan sisällä. Se tunnetaan nimellä sisäkkäinen silmukka. Sisäinen silmukka suoritetaan kokonaan, kun ulompi silmukka suoritetaan kerran. Joten jos ulompi silmukka ja sisäsilmukka suoritetaan neljä kertaa, sisempi silmukka suoritetaan neljä kertaa jokaiselle ulkosilmukalle, eli yhteensä 16 kertaa.
ESIMERKKI
|_+_|OUTPUT
|_+_|Vaikka silmukka
C++:ssa while-silmukkaa käytetään toistamaan ohjelman osaa useita kertoja. Jos iteraatioiden lukumäärä ei ole kiinteä, on suositeltavaa käyttää while-silmukkaa silmukan sijaan.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|OUTPUT
|_+_|Sisäkkäinen kun silmukka
C++:ssa voit käyttää while-silmukkaa toisen while-silmukan sisällä; se tunnetaan sisäkkäisenä while-silmukana. Sisäkkäinen while-silmukka suoritetaan, kun ulompi silmukka suoritetaan kerran.
ESIMERKKI
|_+_|OUTPUT
|_+_|Tee-while -silmukka
C++ do-while -silmukkaa käytetään toistamaan ohjelman osaa useita kertoja. Jos iteraatioiden lukumäärä ei ole kiinteä ja sinun on suoritettava silmukka vähintään kerran, on suositeltavaa käyttää do-while -silmukkaa.
C++ do-while -silmukka suoritetaan vähintään kerran, koska ehto tarkistetaan silmukan rungon jälkeen.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|OUTPUT
|_+_|Sisäkkäinen Do-While -silmukka
C++:ssa, jos käytät do-while-silmukkaa toisen do-while-silmukan sisällä, sitä kutsutaan sisäkkäisiksi do-while-silmukaksi. Sisäkkäinen do-while -silmukka suoritetaan kokonaan jokaiselle ulommalle do-while -silmukalle.
ESIMERKKI
|_+_|OUTPUT
|_+_|Päätöksentekolausunnot
Tosielämässä on tilanteita, joissa sinun on tehtävä päätöksiä, ja näiden päätösten perusteella päätät, mitä sinun pitäisi tehdä seuraavaksi. Samanlaisia ongelmia syntyy ohjelmoinnissa myös silloin, kun joudut tekemään päätöksiä ja näiden päätösten perusteella suoritat seuraavan koodilohkon.
Ohjelmointikielten päätöksentekolausekkeet määräävät ohjelman suoritusvirran suunnan. C++:ssa saatavilla olevat päätöksentekolausunnot ovat:
jos lausunto
jos lausunto on yksinkertainen päätöksentekolausunto. Sitä käytetään päättämään, suoritetaanko lausekelohko vai ei. Jos ehto on tosi, lausekelohko suoritetaan muuten ei.
SYNTAKSI
|_+_|Tässä, ehdot arvioinnin jälkeen on joko tosi tai epätosi. jos lauseke hyväksyy loogiset arvot.
ESIMERKKI
|_+_|OUTPUT
|_+_|jos muuten lausunto
If-lause kertoo, että jos ehto on tosi, se suorittaa lausekkeen ja jos ehto on epätosi, se ei suorita. Voit käyttää else-lausetta if-käskyn kanssa koodilohkon suorittamiseen, kun ehto on epätosi.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|OUTPUT
|_+_|Sisäkkäiset if-lauseet
Sisäkkäinen if-lause C++:ssa on if-lause, joka kohdistuu toiseen if-lauseeseen. Sisäkkäiset if-lauseet tarkoittavat if-lausetta toisen if-lauseen sisällä. Kyllä, sekä C että C++ tarjoavat meille sisäkkäisiä if-lauseita if-lauseiden sisällä, eli voit sijoittaa if-lauseen toisen if-lauseen sisään.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|OUTPUT
|_+_|jos-muuten-jos tikkaat
Käyttäjä voi valita eri vaihtoehdoista. If-lauseet suoritetaan ylhäältä alas. Heti kun ehdot ohjaavat if on tosi, siihen liittyvä lauseke suoritetaan ja loput else-if-ladder päätetään. Jos ehdot eivät ole totta, suoritetaan viimeinen ja viimeinen lausunto.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|OUTPUT
|_+_|Jump-lausunnot
Tauko
Tätä lausetta käytetään silmukan päättämiseen. Heti kun break-käsky kohdataan silmukan sisältä, silmukan iteraatiot pysähtyvät siihen ja ohjaus palaa välittömästi silmukan jälkeiseen ensimmäiseen käskyyn.
SYNTAKSI
Tauko;
Break-lauseita käytetään tilanteissa, joissa emme ole varmoja silmukan todellisesta iteraatioiden määrästä tai päätämme silmukan jonkin ehdon perusteella.
ESIMERKKI
|_+_|OUTPUT
|_+_|Jatkaa
Continue-lause on break-lauseen vastakohta; sen sijaan, että se lopettaisi silmukan, se pakottaa silmukan seuraavan iteraation.
Jatka-lause pakottaa silmukan suorittamaan seuraavan iteraation. Kun jatka-käsky suoritetaan, jatka-käskyä seuraavan silmukan sisällä oleva koodi ohitetaan ja seuraava iteraatio alkaa.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|OUTPUT
|_+_|Mene
Goto-lause C++:ssa viittaa ehdottomaan hyppykäskyyn, jota käytetään hyppäämään pisteestä toiseen funktion sisällä.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|OUTPUT
|_+_|Palata
C++:n palautus palauttaa suorituksen kulun funktioon. Tämä lausunto ei vaadi ehdollisia lauseita. Kun käsky on suoritettu, ohjelman kulku pysähtyy välittömästi ja palauttaa ohjauksen sieltä, mistä sitä kutsuttiin. Return-lause saattaa palauttaa tai ei välttämättä palauttaa mitään void-funktiolle, mutta paluuarvo on palautettava ei-void-funktiolle.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|OUTPUT
|_+_|C++ toiminnot
Funktiolla tarkoitetaan lauseryhmää, joka ottaa syötteen, käsittelee sen ja palauttaa tulosteen. Toiminnon tavoitteena on yhdistää yhä uudelleen ja uudelleen suoritettavia tehtäviä. Jos sinulla on useita syötteitä, sinun ei tarvitse kirjoittaa samaa koodia uudelleen. Voit kutsua funktiota eri tietojoukolla, joka tunnetaan parametreina.
C++-ohjelmassa on ainakin yksi funktio, main()-funktio.
Funktion määrittely
C++:n funktion määritelmä koostuu funktion otsikosta ja rungosta.
ESIMERKKI
|_+_|Toiminnon ilmoittaminen
C++:ssa funktiot on ilmoitettava ennen kuin niitä käytetään. Voit ilmoittaa funktion antamalla sen palautusarvon, nimen ja argumenttien tyypit. Argumenttien ehdot ovat valinnaisia. Funktiomäärittely lasketaan funktion määrittelyksi.
ESIMERKKI
|_+_|Toiminnon kutsuminen
Kun luot C++-funktiota, määrität, mitä funktion on tehtävä. Jotta voit käyttää funktiota, sinun on kutsuttava kyseinen funktio.
Kun ohjelma kutsuu funktiota, ohjelman ohjaus siirtyy kutsutulle funktiolle. Kutsuttu funktio suorittaa määritellyn tehtävän, ja kun sen return-käsky suoritetaan tai kun sen funktion päättävä sulkeva aaltosulu saavutetaan, se palauttaa ohjelman ohjauksen pääohjelmalle.
ESIMERKKI
|_+_|Toiminnan argumentit
Jos funktio käyttää argumentteja, sen tulee ilmoittaa muuttujat, jotka hyväksyvät argumenttien arvot. Nämä muuttujat tunnetaan nimellä funktion muodolliset parametrit.
C++ numerot
Yleensä, kun työskentelemme Numbersin kanssa, käytämme primitiivisiä tietotyyppejä, kuten int, short, long, float, double jne. Tietotyyppien lukumäärä, niiden mahdolliset arvot ja numeroalueet on selitetty C++-tietotyypeistä käsiteltäessä.
ESIMERKKI
|_+_|OUTPUT
|_+_|Matemaattiset operaattorit C++:ssa
KYLLÄ EI | Toiminnot | Tarkoitus |
yksi | kaksoissynti(kaksois); | Se ottaa kulman (kaksinkertaisena) ja palauttaa sinin. |
kaksi | double cos (double); | Se ottaa kulman (kaksoiskappaleena) ja palauttaa kosinin. |
3 | kaksoisrusketus (kaksoisruskea); | Se ottaa kulman (kaksinkertaisena) ja palauttaa tangentin. |
4 | double pow(double, double); | Ensimmäinen on luku, jota haluat nostaa ja toinen on teho, jota haluat nostaa t |
5 | kaksoislogi(kaksois); | Se ottaa luvun ja palauttaa luvun luonnollisen lokin. |
6 | kaksoishypootti(kaksois, tupla); | Jos ohitat tämän suoran kolmion kahden sivun pituuden, se palauttaa hypotenuusan pituuden. |
7 | double sqrt(double); | Annat funktiolle luvun ja se antaa sinulle neliöjuuren. |
8 | int abs(int); | Se palauttaa sille välitetyn kokonaisluvun itseisarvon. |
9 | kaksinkertainen kerros (kaksikertainen); | Etsii kokonaisluvun, joka on pienempi tai yhtä suuri kuin sille välitetty argumentti. |
10 | double fabs (double); | Se palauttaa minkä tahansa sille välitetyn desimaaliluvun absoluuttisen arvon. |
ESIMERKKI
|_+_|OUTPUT
|_+_|C++-taulukot
C++:n taulukko on kokoelma vierekkäisiin muistipaikkoihin tallennettuja kohteita, ja elementtejä voidaan käyttää satunnaisesti taulukon indeksien avulla. Niitä käytetään samanlaisten elementtien tallentamiseen, koska tietotyypin on oltava sama kaikille elementeille. Ne voivat tallentaa primitiivisiä tietotyyppejä, kuten char, int, float, double jne. C++-kielen taulukko voi tallentaa johdettuja tietotyyppejä, kuten rakenteita, osoittimia jne. Alla on taulukon viehättävä esitys. .
Array-ilmoitus
SYNTAKSI
|_+_|ESIMERKKI
|_+_|Tässä,
Käytä elementtejä Arrayssa
Jokainen taulukon elementti on yhdistetty numeroon. Lukua kutsutaan taulukkoindeksiksi. Voit käyttää taulukon elementtejä indeksien avulla.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|Tässä on muutamia tärkeitä käsitteitä C++-taulukoista
C++ merkkijonot
Se on kokoelma hahmoja. C++-ohjelmointikielessä käytetään kahdenlaisia merkkijonoja:
Jousiluokka
C++-kirjasto tarjoaa a merkkijono luokkatyyppi, joka tukee kaikkia yllä mainittuja toimintoja, lisäksi paljon enemmän toimintoja.
ESIMERKKI
|_+_|OUTPUT
|_+_|C-kieliä
Tämä merkkijono on peräisin C-kielestä ja sitä tuetaan C++:ssa. Tämä merkkijono on yksiulotteinen merkkijono, joka päättyy nollamerkillä . Siten nollapäätteinen merkkijono sisältää merkit, jotka sisältävät merkkijonon, jota seuraa nolla.
ESIMERKKI
|_+_|OUTPUT
|_+_|Harvat funktiot, jotka käsittelevät nollapääteisiä merkkijonoja
Se kopioi merkkijonon s2 merkkijonoon s1.
Se ketjuttaa merkkijonon s2 merkkijonon s1 loppuun.
Se palauttaa osoittimen merkkijonon s2 esiintymiseen merkkijonossa s1.
Se palauttaa merkkijonon pituuden s1.
Se palauttaa 0, jos s1 ja s2 ovat samat; pienempi kuin 0, jos s1s2.
Se palauttaa osoittimen merkin ch esiintymiseen merkkijonossa s1.
C++ osoittimet
Osoittimet edustavat osoitteita. Niiden avulla ohjelmat voivat simuloida kutsun mukaan sekä luoda ja käsitellä dynaamisia tietorakenteita.
SYNTAKSI
|_+_|Kuinka käyttää osoitinta?
Muutamia käsitteitä osoittimista
ESIMERKKI
|_+_|OUTPUT
|_+_|C++-viitteet
Viitemuuttuja on jo olemassa olevan muuttujan nimi. Kun viittaus on alustettu, joko muuttujan nimeä tai viitteen nimeä voidaan käyttää viittaamaan muuttujaan.
ESIMERKKI
|_+_|OUTPUT
|_+_|C++ Päivämäärä ja aika
C++-kirjasto ei tarjoa oikeaa päivämäärätyyppiä. Se perii päivämäärän ja ajan käsittelyn rakenteet ja funktiot C:stä. Päästäksesi päivämäärään ja aikaan liittyviin funktioihin ja rakenteisiin, sinun on sisällytettävä otsikkotiedosto C++-ohjelmaasi.
Aikaan liittyviä tyyppejä on neljä: clock_t, time_t, size_t ja tm. Tyypit – clock_t, size_t ja time_t pystyvät esittämään järjestelmän kellonajan ja päivämäärän kokonaislukuina.
ESIMERKKI
|_+_|Jotkut tärkeät toiminnot
Se palauttaa nykyisen kalenterin ajan useissa sekunneissa, jotka ovat kuluneet 1. tammikuuta 1970. Jos järjestelmällä ei ole aikaa, palautetaan .1.
Se palauttaa osoittimen lomakkeen merkkijonoon päivä kuukausi vuosi tunnit:minuutit: sekuntia.
Se palauttaa osoittimen tm paikallista aikaa edustava rakenne.
Se palauttaa arvon, joka vastaa likimääräisesti kutsuvan ohjelman kestoa. Arvo .1 palautetaan, jos aikaa ei ole saatavilla.
Se palauttaa osoittimen merkkijonoon, joka sisältää rakenteeseen tallennetut tiedot ajan osoittamalla tavalla muutettuna muotoon: päivä kuukausi päivämäärä tunnit:minuutit: sekuntit
Se palauttaa osoittimen aikaan tm-rakenteen muodossa.
Se palauttaa rakenteesta löytyneen kalenteriajan, johon aika osoittaa.
Se laskee eron sekunneissa aika1 ja aika2 välillä.
Sitä voidaan käyttää päivämäärän ja kellonajan muotoilemiseen tiettyyn muotoon.
C++ tietorakenteet
C++-taulukoiden avulla voit määrittää muuttujia, jotka yhdistävät useita samanlaisia tietokohteita. Silti, rakenne on toinen käyttäjän määrittämä tietotyyppi, jonka avulla voit yhdistää erityyppisiä tietokohteita. Rakenteita käytetään edustamaan tietuetta.
Rakenteen määrittely
Rakenteen määrittämiseen tulee käyttää struct-lausetta. Strukt-käsky määrittää ohjelmalle tietotyypin, jossa on useampi kuin yksi jäsen.
|_+_|The rakennetunniste on valinnainen. Määritelmän lopussa, ennen viimeistä puolipistettä, sinun tulee määrittää yksi tai useampi rakennemuuttuja.
Pääsy rakenteen jäseniin
Voit käyttää mitä tahansa rakenteen jäsentä käyttämällä jäsenpääsyoperaattori (.) . Jäsenpääsyoperaattori on koodattu jaksoksi rakennemuuttujan nimen ja rakenteen jäsenen välillä, johon haluamme päästä. käyttäisit rakenne avainsana, jolla määritetään rakennetyypin muuttujat.
Rakenteet funktion argumentteina
Voit välittää rakenteen funktion argumenttina samalla tavalla kuin minkä tahansa muun muuttujan tai osoittimen.
ESIMERKKI
|_+_|OUTPUT
|_+_|C++-luokat ja objektit
Kaikki C++:ssa liittyy luokkiin ja objekteihin sekä niiden attribuutteihin ja menetelmiin. Esimerkiksi: tosielämässä bussi on esine . Bussissa on attribuutteja , kuten paino ja väri, ja menetelmiä , kuten veto ja jarru.
Attribuutit ja menetelmät ovat muuttujia ja toimintoja jotka kuuluvat luokkaan. Niitä kutsutaan luokan jäseniksi. Luokka on käyttäjän määrittämä tietotyyppi, jota voit käyttää ohjelmassa ja se toimii objektien rakentajana tai suunnitelmana objektien luomiseen.
Luo luokka
Jos haluat luoda luokan, sinun on käytettävä luokkaa avainsana:
ESIMERKKI
|_+_|Luo objekti
C++:ssa objekti luodaan luokasta.
Objektin luomiseksi sinun on määritettävä luokan nimi ja sen jälkeen objektin nimi. Voit käyttää luokan attribuutteja käyttämällä objektin pistesyntaksia (.):
ESIMERKKI
|_+_|Muutama käsite yksityiskohtaisesti
C++-perintö
Periytys on prosessi, jossa objekti hankkii kaikki emoobjektinsa ominaisuudet ja käyttäytymiset automaattisesti. Voit muokata attribuutteja ja toimintoja, jotka on määritelty muissa luokissa.
Luokka, joka perii toisen luokan jäsenet, tunnetaan johdettuna luokkana, ja luokka, jonka jäsenet peritään, tunnetaan perusluokkana. Johdettu luokka on perusluokan erikoisluokka.
Perinnön tyypit
'A' on perusluokka,
'B' on johdettu luokka.



Luokka D perii luokan C ja luokan B sekä luokan A ominaisuudet ja käyttäytymisen. Luokka C ja luokka B perii luokan A. Luokka A on luokan B sekä luokan C ja luokan D ylätaso.


C++ pääsyn muokkaajat
Pääsyn määrittäjiä käytetään toteuttamaan olio-ohjelmoinnin olennainen osa, joka tunnetaan nimellä Data Hiding. Luokan pääsymuokkauksia käytetään luokan jäsenten käyttöoikeuksien myöntämiseen. Se asettaa luokan jäsenille joitain rajoituksia, jotta ulkopuoliset toiminnot eivät pääse suoraan käsiksi.
C++:ssa on saatavilla kolmenlaisia käyttöoikeusmuutoksia:
Keskustelemme niistä yksityiskohtaisesti:
Julkinen
Kaikki julkisen määritteen alla ilmoitetut luokan jäsenet ovat kaikkien saatavilla. Julkisiksi ilmoitettuihin jäsentoimintoihin pääsevät myös muut luokat ja funktiot. Luokan julkisiin jäseniin pääsee mistä tahansa ohjelmasta käyttämällä pääsyoperaattoria (.) kyseisen luokan objektin kanssa.
ESIMERKKI
|_+_|OUTPUT
|_+_|Yksityinen
Luokan sisällä olevat jäsenfunktiot voivat käyttää vain yksityisiksi ilmoitettuja luokan jäseniä. Niihin ei voi päästä suoraan millään luokan ulkopuolisella objektilla tai funktiolla. Vain ystävätoiminnot saavat käyttää luokan jäsenten yksityisiä tietoja.
ESIMERKKI
|_+_|OUTPUT
|_+_|Suojattu
Suojattu käyttöoikeusmuunnin on sama kuin yksityinen käyttöoikeusmuunnin, koska siihen ei pääse luokkansa ulkopuolella, ellei ystäväluokan avulla eroa siinä, että suojatuiksi ilmoitettuja luokan jäseniä voi käyttää mikä tahansa johdettu luokka. myös siitä luokasta.
ESIMERKKI
|_+_|OUTPUT
|_+_|C++ ylikuormitus
C++-ohjelmointikielen avulla voit määrittää useamman kuin yhden määritelmän a:lle toiminto nimi tai an operaattori samassa laajuudessa, ns toimintojen ylikuormitus ja operaattorin ylikuormitus , vastaavasti.
Ylikuormitettu ilmoitus ilmoitetaan samalla nimellä kuin aiemmin ilmoitettu ilmoitus samassa laajuudessa, paitsi että molemmilla ilmoituksilla on eri argumentit ja erilaiset määritelmät.
Toimintojen ylikuormitus
Funktioiden ylikuormitus on ominaisuus, joka tarjoaa sinulle useamman kuin yhden funktion, joilla on sama nimi, mutta eri parametriluettelo.
ESIMERKKI
|_+_|OUTPUT
|_+_|C++-polymorfismi
Kuljettajan ylikuormitus
Voit saada operaattoreita toimimaan käyttäjän määrittämille luokille. Tämä tarkoittaa, että C++ voi tarjota operaattoreille erityisen merkityksen tietotyypille. Tätä kutsutaan operaattorin ylikuormitukseksi.
ESIMERKKI
|_+_|OUTPUT
|_+_|Se on tärkeä olio-ohjelmoinnin käsite. Se tarkoittaa useampaa kuin yhtä muotoa. Eli sama kokonaisuus käyttäytyy eri tavalla eri skenaarioissa.
Toiminnon ohitus
Sinulla voi olla sama funktio perusluokassa sekä johdetuissa luokissa. Kun kutsut funktiota käyttämällä johdetun luokan objektia, johdetun luokan funktio suoritetaan perusluokan sijaan.
Siksi erilaisia toimintoja suoritetaan riippuen funktiota kutsuvasta objektista. Tätä kutsutaan toimintojen ohitukseksi
ESIMERKKI
|_+_|OUTPUT
|_+_|C++ Virtuaalifunktiot
C++:ssa et ehkä voi ohittaa toimintoja, jos käytämme perusluokan osoitinta osoittamaan johdetun luokan objektia.
Virtuaalifunktioiden käyttäminen perusluokassa varmistaa, että funktio voidaan ohittaa näissä tapauksissa. Siten virtuaaliset toiminnot kuuluvat toimintojen ohituksen piiriin.
Puhtaita virtuaalisia toimintoja
On mahdollista, että haluat sisällyttää virtuaalisen funktion perusluokkaan, jotta se voidaan määritellä uudelleen johdetussa luokassa sopimaan kyseisen luokan objekteille, mutta perusluokan funktiolle ei ole järkevää määritelmää. .
ESIMERKKI
|_+_|C++-tietojen abstraktio
Tietojen abstraktio on yksi C++:n olioohjelmoinnin olennaisista ominaisuuksista. Abstraktio tarkoittaa vain asiaankuuluvien tietojen näyttämistä ja yksityiskohtien piilottamista. Datan abstraktiolla tarkoitetaan vain olennaisten tietojen tarjoamista ulkomaailman tiedoista, taustatietojen piilottamista tai toteutusta.
Abstraktio luokkien avulla
Voit toteuttaa Abstractionin C++:ssa luokkien avulla. Luokan avulla voit ryhmitellä datajäseniä ja jäsentoimintoja käytettävissä olevien käyttöoikeusmääritteiden avulla. Luokka voi päättää, mikä datajäsen näkyy ulkomaailmalle ja mikä ei.
Abstraktio käyttöoikeusmääritteiden avulla
Käyttöoikeusmäärittäjät ovat tärkeässä roolissa abstraktion toteutuksessa C++:ssa. Voit käyttää käyttöoikeusmääritteitä pakottaaksesi rajoituksia luokan jäsenille. Esimerkiksi:
ESIMERKKI
|_+_|OUTPUT
|_+_|C++-tietojen kapselointi
Se on prosessi, jossa funktiot ja datajäsenet yhdistetään yhdeksi yksiköksi nimeltä luokka. Tämä estää pääsyn tietoihin suoraan. Pääsy niihin tarjotaan luokan toimintojen kautta. Se on yksi olio-ohjelmoinnin suosituimmista ominaisuuksista, joka auttaa tietojen piilottamisessa.
Tämän toteuttamiseksi
ESIMERKKI
|_+_|OUTPUT
|_+_|C++ abstrakti luokat
C++-luokasta tehdään abstrakti julistamalla yksi sen toiminnoista elintärkeäksi>puhdas virtuaalifunktio. Puhdas virtuaalinen funktio mainitaan sijoittamalla sen ilmoitukseen = 0. Johdettujen luokkien tulee tarjota niiden toteutus.
ESIMERKKI
|_+_|OUTPUT
|_+_|C++-tiedostot ja streamit
kyllä ei | Tietotyyppi | Kuvaus |
yksi | virran ulkopuolella | Se edustaa tulostustiedostovirtaa ja sitä käytetään tiedostojen luomiseen ja tietojen kirjoittamiseen tiedostoihin. |
kaksi | ifstream | Se edustaa syöttötiedostovirtaa ja sitä käytetään tietojen lukemiseen tiedostoista. |
3 | fstream | Se edustaa tiedostovirtaa yleisesti ja sillä on sekä ofstream- että ifstream-ominaisuus. |
Tiedoston avaaminen
Tiedosto tulee avata ennen kuin voit lukea sitä tai kirjoittaa siihen. Joko fstream- tai ofstream-objektia voidaan käyttää tiedoston avaamiseen kirjoittamista varten. Ifstream-objektia käytetään tiedoston avaamiseen vain lukutarkoituksiin.
kyllä ei | Tilan lippu | Kuvaus |
yksi | ios::ate | Kaikki tulosteet tiedostoon liitetään loppuun. |
kaksi | ios::app | Se avaa tiedoston tulostusta varten ja siirtää luku- tai kirjoitussäätimen tiedoston loppuun. |
3 | ios::trunc | Jos tiedosto on jo olemassa, sisältö katkaistaan ennen tiedoston avaamista. |
4 | ios::out | Se avaa tiedoston kirjoittamista varten. |
5 | ios::in | Se avaa tiedoston lukemista varten. |
SYNTAKSI
|_+_|Tiedoston sulkeminen
Kun C++-ohjelma lopetetaan, se tyhjentää automaattisesti kaikki virrat, vapauttaa kaikki varattu muisti ja sulkee kaikki avatut tiedostot.
SYNTAKSI
|_+_|Lukeminen tiedostosta
Voit lukea tietoja tiedostosta ohjelmaan käyttämällä stream-purkuoperaattoria (>>). Ainoa ero on, että käytät fstream- tai ifstream-objektia cin-objektin sijasta.
LUE JA KIRJOITA ESIMERKKI
|_+_|OUTPUT
|_+_|Tiedoston sijaintiosoittimet
Sekä ostream että istream tarjoavat jäsentoimintoja tiedoston sijaintiosoittimen sijoittamiseen uudelleen. Nämä jäsenfunktiot ovat seekp ostreamille ja seekg istreamille. Argumentti seekp:lle ja seekg:lle on pitkä kokonaisluku. Toinen argumentti voidaan mainita osoittamaan etsintäsuuntaa.
C++ poikkeusten käsittely
Poikkeuskäsittely C++:ssa on prosessi ajonaikaisten virheiden käsittelemiseksi. Suoritat poikkeuskäsittelyn, jotta sovelluksen normaali kulku voidaan säilyttää myös ajonaikaisten virheiden jälkeen.
C++:ssa poikkeus on tapahtuma tai objekti, joka heitetään suorituksen aikana. Kaikki poikkeukset ovat peräisin std::exception-luokasta. Jos emme käsittele poikkeusta, se tulostaa poikkeusviestin ja lopettaa ohjelman.
Poikkeukset | Kuvaukset |
std::bad_exception | Sitä käytetään odottamattomien poikkeusten käsittelyyn. |
std::logic_failure | Se voidaan havaita lukemalla koodi. |
std::bad_typeid | Se heitetään yleensä tyyppitunnuksella. |
std::runtime_error | Sitä ei voi havaita lukemalla koodia. |
std::poikkeus | Se on poikkeus ja yläluokka kaikista tavallisista C++-poikkeuksista. |
std::bad_cast | Sen heittää yleensä dynamic_cast. |
std::bad_alloc | Se on yleensä heitetty uusiin. |
C++-poikkeuksien käsittely perustuu kolmeen avainsanaan: yritä saada kiinni, ja heittää .
ESIMERKKI
|_+_|C++ dynaaminen muisti
Muisti on jaettu kahteen osaan −
Ohjelmoijat voivat jakaa tallennustilaa dynaamisesti ohjelman ollessa käynnissä. Ohjelmoijat eivät kuitenkaan voi luoda uusia muuttujien nimiä, ja tästä syystä dynaaminen kohdistaminen vaatii kaksi kriteeriä:
Muistin purkaminen on myös osa tätä konseptia, jossa tilaa siivotaan muulle datatallennukselle. Dynaamisen muistin varauksen purkamiseen voit käyttää poisto-operaattoria. Joten dynaaminen muistin varaus tarkoittaa muistinhallinnan suorittamista dynaamista muistin varausta varten manuaalisesti.
uusi ja poista operaattorit
Tässä tietotyyppi voi olla mikä tahansa sisäänrakennettu tietotyyppi, joka sisältää taulukon, tai käyttäjän määrittämillä tietotyypeillä on luokka tai rakenne. Aloitetaan sisäänrakennetuista tietotyypeistä
SYNTAKSI
|_+_|Kun tunnet muuttujan, jota ei ole allokoitu dynaamisesti ja jota ei enää tarvita, voit vapauttaa vapaan myymälän muistia 'poistaa' operaattori.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|Dynaaminen taulukoiden muistin varaus
Jos olet ohjelmoija; haluat varata muistia merkkijoukolle saman syntaksin avulla, jonka voit tehdä.
ESIMERKKI
|_+_|Nimiavaruudet tarjoavat sinulle mahdollisuuden ryhmitellä nimetyt entiteetit, joilla on maailmanlaajuisesti kapeampiin ulottuvuuksiin ja antaa niitä nimitilan laajuus . Tämä mahdollistaa myös ohjelmien elementtien järjestämisen erilaisiin loogisiin ulottuvuuksiin, joihin viitataan nimillä. Nimiavaruus on ominaisuus, joka on C++:ssa, mutta ei C:ssä. Useat samannimiset nimiavaruuslohkot ovat sallittuja. Kaikki lohkoissa olevat ilmoitukset ilmoitetaan nimetyssä laajuudessa.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|OUTPUT
|_+_|Epäjatkuvat nimiavaruudet
Nimiavaruus on määritelty useissa osissa ja nimiavaruus muodostuu sen määritettyjen osien summasta. Nimiavaruuden erilliset osat jakautuvat useisiin tiedostoihin.
SYNTAKSI
|_+_|Sisäkkäiset nimitilat
Täällä voit määrittää yhden nimiavaruuden toisen nimiavaruuden sisällä
SYNTAKSI
|_+_|ESIMERKKI
|_+_|C++-malleja
Malli on C++:n ominaisuus, jonka avulla voit kirjoittaa yleisiä ohjelmia. Toisin sanoen voit luoda yksittäisen funktion tai luokan työskentelemään eri tietotyyppien kanssa mallien avulla. Malleja käytetään laajemmassa koodikannassa koodin joustavuuden ja ohjelmien uudelleenkäytettävyyden takaamiseksi.
Näitä käsitteitä käytetään kahdella tavalla:
Toimintomallit
Toimintomalli toimii aivan kuten normaali funktio, yhdellä keskeisellä erolla.
Yksittäinen funktiomalli voi toimia eri tietotyyppien kanssa, mutta yksi normaali funktio voi toimia yhden tietotyypin kanssa.
Yleensä, jos haluat suorittaa identtisiä operaatioita useille datatyypeille, voit käyttää funktioiden ylikuormitusta funktioiden luomiseen funktion määrittelyn avulla.
Parempi lähestymistapa olisi kuitenkin käyttää funktiomalleja, koska voit suorittaa saman tehtävän kirjoittamalla vähemmän ja ylläpidettävää koodia.
ESIMERKKI
|_+_|OUTPUT
|_+_|Luokkamallit
Funktiomallien tapaan voit luoda luokkamalleja luokkaoperaatioita varten. Yleensä sinun on luotava eri luokka kullekin tietotyypille TAI luotava muita jäsenmuuttujia ja toimintoja samaan luokkaan.
Tämä turvottaa tarpeettomasti koodikantaasi ja sitä on vaikea ylläpitää, koska yhden luokan/funktion muutos on suoritettava kaikille luokille/funktioille. Vaikka luokkamallien avulla on helppoa käyttää samaa koodia kaikille tietotyypeille.
ESIMERKKI
|_+_|OUTPUT
|_+_|C++ esiprosessorit
Esikäsittelijän käskyt ovat ohjelmien koodiin sisältyviä rivejä, joita edeltää hash-merkki (#). Nämä rivit eivät ole ohjelmoituja käskyjä, vaan esiprosessorin direktiivejä. Esiprosessori tutkii koodin ennen koodin kääntämisen alkamista ja ratkaisee kaikki käskyt ennen kuin tavalliset käskyt luovat koodia.
Esiprosessorin käskyt ulottuvat yhden koodirivin yli. Heti kun rivinvaihtomerkki löytyy, esikäsittelijäohje päättyy.
Esikäsittelyohjeita on neljä päätyyppiä:
makro
Makrot ovat koodinpätkä, jolle on annettu jokin nimi. Aina kun kääntäjä kohtaa tämän nimen, se korvaa nimen todellisella koodinpalalla. #define-käskyä käytetään makron määrittämiseen.
ESIMERKKI
|_+_|OUTPUT
|_+_|Ennalta määritetyt C++-makrot
Se sisältää ohjelman rivinumeron ohjelmaa käännettäessä.
Se sisältää ohjelman nykyisen tiedostonimen sitä käännettäessä.
Se sisältää merkkijonon, joka on päivämäärä, jolloin lähdetiedosto käännettiin objektikoodiksi.
Se sisältää merkkijonon tunti:minuutti: sekunti, joka on aika, jolloin ohjelma käännettiin.
Tiedoston sisällyttäminen
Tämä esiprosessorin ohje käskee kääntäjää sisällyttämään tiedoston ohjelmaan. On olemassa kahdenlaisia tiedostoja, jotka käyttäjä säilyttää ohjelmassa:
Ehdollinen kokoelma
Se auttaa kääntämään tietyn osan ohjelmasta tai ohittamaan ohjelman tietyn osan kääntämisen joidenkin ehtojen perusteella.
SYNTAKSI
|_+_|Muut direktiivit
Edellä mainittujen direktiivien lisäksi tässä on kaksi muuta direktiiviä, joita ei käytetä yleisesti. Nämä ovat:
C++ signaalinkäsittely
Signaalit ovat keskeytyksiä, joita käyttöjärjestelmä tarjoaa prosessille, joka lopettaa ohjelman ennenaikaisesti. Painamalla Ctrl+C UNIXissa, LINUX , Mac OS X tai Windows-kone, voit luoda keskeytyksiä.
On signaaleja, joita ohjelmisto ei pysty havaitsemaan, mutta on luettelo signaaleista, jotka voit havaita ohjelmassasi ja suorittaa hyväksyttäviä signaaliin perustuvia toimia. C++-otsikkotiedosto kuvaa nämä signaalit.
kyllä ei | Signaali | Kuvaus |
yksi | SIGFPE | Virheellinen aritmeettinen operaatio, kuten nollakatko tai ylivuotooperaatio. |
kaksi | SIGABRT | Epänormaali ohjelman lopetus, kuten keskeytyskutsu. |
3 | SIGINT | Interaktiivisen tarkennuksen signaalin vastaanotto |
4 | TIIVISTE | Laittoman ohjeen löytyminen. |
5 | SIGTERM | Lähetti ohjelmalle lopetuspyynnön. |
6 | SIGSEGV | Virheellinen levykäyttö. |
Signaali()-funktio
C++-signaalinkäsittelykirjasto sisältää signaaliominaisuuden ennakoimattomien tapahtumien ansaan.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|OUTPUT
|_+_|Korosta()-funktio
Raise()-funktiolla, joka ottaa argumentiksi kokonaislukusignaalin numeron, voit tuottaa signaaleja.
SYNTAKSI
|_+_|ESIMERKKI
|_+_|OUTPUT
|_+_|Monisäikeistys on erikoistunut moniajo-toiminto, ja toiminto, jonka avulla koneesi voi ajaa kahta tai useampaa ohjelmaa samanaikaisesti, on moniajotoiminto. Yleisesti ottaen on olemassa kahdenlaista moniajoa: prosessipohjainen ja säiepohjainen. Ohjelmien rinnakkaissuoritus hoidetaan prosessipohjaisella multitaskingilla. Säikeisiin perustuva moniajo käsittelee saman ohjelman osien rinnakkaista suorittamista. Monisäikeisessä ohjelmassa on kaksi tai kolme osaa, jotka toimivat samanaikaisesti.
SYNTAKSI
|_+_|KYLLÄ EI | Parametri | Kuvaus |
yksi | vihainen | Yksi lausunto, joka voidaan välittää rutiini-alkuun. Se on siirrettävä osoitinvaluna, joka on tyypiltään tyhjä. NULL-arvoa voidaan käyttää, kun siirrettävää argumenttia ei ole. |
kaksi | lanka | Läpinäkyvä, erityinen tunniste nykyiselle säikeelle, jonka aliohjelma palauttaa. |
3 | attr | Näkymätön objektiattribuutti, jota voidaan käyttää säiettämääritteiden asettamiseen. Voit määrittää objektin säikeen ominaisuuksilla tai NULL:n oletusarvoilla. |
4 | aloitus_rutiini | Kun C++-rutiini on perustettu, säie suoritetaan. |
Säikeet päättyvät
Käytämme seuraavaa rutiinia POSIX-säikeen päättämiseen:
|_+_|Tässä pthread exit -näppäintä käytetään säikeestä suoraan poistumiseen. Yleensä, kun säie on lopettanut tehtävänsä eikä sitä enää tarvita, pthread exit() -rutiini nimetään.
Jos main() päättyy ja poistuu pthreadilla exit() ennen sen tuottamia säikeitä, muut säikeet voivat alkaa toimia. Muussa tapauksessa main()-päätteenä ne lopetetaan välittömästi
Lankojen sisääntulo ja irtoaminen
Noudatetaan kahta rutiinia, joita voimme käyttää säikeiden syöttämiseen tai poistamiseen.
|_+_|Aliohjelma pthread join() estää kutsuvan säikeen, kunnes 'threadid' -säie päättyy. Yksi sen ominaisuuksista määrittää, onko se liitettävissä vai irrotettavissa lankaa muodostettaessa. Se voidaan yhdistää vain säikeillä, jotka on luotu liitettäviksi. Sitä ei voi koskaan liittää, jos lanka muodostetaan irrotettuna.
C++ Web-ohjelmointi
Ja mikä on CGI?
Typical Gateway Interface tai CGI on kokoelma ohjeita, jotka kuvaavat tietojen jakamista verkkopalvelimen ja mukautetun komentosarjan välillä. Ulkoisissa yhdyskäytäväjärjestelmissä Generic Gateway Interface tai CGI on standardi liitäntään tietopalvelimien, kuten HTTP-palvelimien, kanssa. CGI/1.1 on uusin versio, ja CGI/1.2 on kehitteillä.
Internetin selaaminen
Katsotaanpa, mitä tapahtuu, kun painamme hyperlinkkiä selataksemme tiettyä verkkosivua tai URL-osoitetta ymmärtääksemme CGI:n käsitteen. Selaimesi ottaa yhteyttä HTTP-verkkopalvelimeen ja vaatii URL-osoitteen, eli tiedostonimi kerrallaan. Web-palvelin jäsentää URL-osoitteen ja etsii tiedostonimeä. Jos pyydetty tiedosto löytyy, web-palvelin siirtää tiedoston takaisin selaimeen, muuten se lähettää virheilmoituksen, että olet pyytänyt virheellistä tiedostoa.
Popular Gateway Interface (CGI) on perusprotokolla, jonka avulla sovellukset voivat kommunikoida Web-palvelimien ja asiakkaiden kanssa. Nämä CGI-ohjelmat on mahdollista kirjoittaa Pythonilla, PERL:llä, Shellillä, C:llä tai C++:lla jne.
ESIMERKKI
|_+_|Verkkopalvelimen määritykset
Varmista, että verkkopalvelin hyväksyy CGI:n ennen kuin jatkat CGI-ohjelmointia ja että se on suunniteltu sopimaan CGI-ohjelmille. Monet HTTP-palvelimen suorittamista CGI-ohjelmista sijaitsevat ennalta määritetyssä hakemistossa. Tätä hakemistoa kutsutaan CGI-hakemistoksi, ja sen nimi on sopimuksen mukaan /var/www/cgi-bin. CGI-tiedostojen tunniste on tavanomaisesti .cgi, vaikka ne ovat suoritettavissa C++:lla.
HTTP-otsikot
Määritä merkkijonon läpi kulkeva eväste.
Resurssin viimeisen päivityksen päivämäärä.
Palautetun tiedon pituus tavuina. Selain käyttää tätä arvoa raportoidakseen tiedoston likimääräisen latausajan.
MIME-merkkijono, joka määrittää merkkijonon muodon
Palautettava URL-osoite pyydetyn URL-osoitteen sijaan. Tätä tiedostoa käytetään pyynnön ohjaamiseen toiseen tiedostoon.
Päivä, jolloin tiedoista tuli hyödyttömiä. Selaimen tulee käyttää tätä päättääkseen, onko verkkosivusto päivitettävä.
Ympäristömuuttujat
GET- ja POST-menetelmät
Kun yrität siirtää tietoja selaimesta verkkopalvelimeen ja lopulta CGI-sovellukseesi, sinun on kohdattava tiettyjä skenaarioita. Selain käyttää yleisimmin kahta tapaa siirtääkseen nämä tiedot verkkopalvelimelle. Nämä lähestymistavat ovat GET-menetelmä ja POST-menetelmä.
URL-ESIMERKKI HANKI-menetelmä
|_+_|Evästeiden käyttö
HTTP-protokolla on valtioton protokolla. Mutta kaupallisen verkkosivuston on tärkeää säilyttää istuntotiedot eri sivustojen välillä. Esimerkiksi yhden käyttäjän rekisteröinti päättyy useiden sivujen tultua valmiiksi. Mutta kuinka pitää istunnon tiedot käyttäjälle kaikilla web-sivustoilla. Luotettavin tapa muistaa ja seurata kiinnostuksen kohteita, myyntiä, palkkioita ja muita tietoja, joita tarvitaan parempaan vierailijakokemukseen tai sivuston tilastoihin, on käyttää evästeitä tietyissä tapauksissa.
Evästeen muodossa palvelimesi siirtää joitakin tietoja vierailijaikkunaan. Selain hyväksyy evästeen. Jos näin on, se tallennetaan vierailijan kiintolevylle pelkkänä teksti-arkistona. Nyt eväste on valmis palautettavaksi, kun käyttäjä osuu toiselle sivulle verkossasi. Kun se on palautettu, palvelin tietää/muistaa tallennetun.
Esimerkkitiedoston lataus
|_+_|Johtopäätös
Tällä pääsemme tämän C++-opetusohjelman loppuun. Toivottavasti tämä auttoi sinua ymmärtämään C++-ohjelmoinnin perusteet.