Programmēšana

C++ apmācība iesācējiem

2021. gada 30. oktobris

Satura rādītājs

Kas ir C++?

C++ ir starpplatformu valoda, ko izmanto augstas veiktspējas lietojumprogrammu izveidei. Bjarne Stroustrup to izstrādāja kā C valodas paplašinājumu. C++ ļauj programmētājiem kontrolēt sistēmas resursus un atmiņu. Valoda tika atjaunināta trīs nozīmīgas reizes 2011., 2014. un 2017. gadā uz C++11, C++14 un C++17.

Kāpēc izmantot C++

  • C++ ir viena no populārākajām programmēšanas valodām.
  • C++ var atrast operētājsistēmās, GUI un iegultās sistēmās.
  • Tā ir uz objektu orientēta programmēšanas valoda, kas programmām piešķir skaidru struktūru un ļauj atkārtoti izmantot kodu, samazinot izstrādes izmaksas.
  • Tas ir pārnēsājams, un to var izmantot, lai izstrādātu lietojumprogrammas, kuras var pielāgot vairākām platformām.
  • Tā kā C++ ir tuvu C# un Java , tas ļauj programmētājiem viegli pārslēgties uz C++ vai otrādi.

Iespējas

    Vienkārši: C++ ir vienkārša valoda, jo tā nodrošina strukturētu pieeju bagātīgam funkciju kopumam, datu tipiem utt.Pārnēsājams: Atšķirībā no montāžas valodas, c programmas tiek izpildītas daudzās iekārtās ar nelielām izmaiņām vai bez izmaiņām. Bet tas nav no platformas neatkarīgs.Vidēja līmeņa programmēšanas valoda: C++ izmanto, lai veiktu zema līmeņa programmēšanu. To izmanto, lai izstrādātu tādas lietojumprogrammas kā kodols, draiveris utt. Tā atbalsta arī augsta līmeņa valodas funkciju.Strukturēta programmēšanas valoda: C++ ir strukturēta programmēšanas valoda, jo programmu var sadalīt daļās, izmantojot funkcijas.Bagātīgā bibliotēka: C++ nodrošina iebūvētas funkcijas, kas padara izstrādi ātru.Atmiņas pārvaldība: tā piedāvā dinamiskas atmiņas piešķiršanas funkciju. Varat atbrīvot piešķirto atmiņu, izsaucot funkciju free().Ātrums: C++ valodas kompilācijas un izpildes laiks ir ātrs.Rādītājs: C++ piedāvā rādītāju funkciju. Varat tieši mijiedarboties ar atmiņu, izmantojot norādes.Rekursija: Programmā C++ varat izsaukt funkciju funkcijas ietvaros. Tas nodrošina koda atkārtotu izmantošanu katrai funkcijai.Paplašināms: C++ valoda ir paplašināma, jo tā var ātri pieņemt jaunas funkcijas.Objektorientēts: C++ ir objektorientēta programmēšanas valoda. OOPs atvieglo apkopi un izstrādi, savukārt uz procedūrām orientētā programmēšanas valodā to nav viegli pārvaldīt, ja kods pieaug projekta gaitā izmērs palielinās.Balstīts uz kompilatoru: tā ir uz kompilatoriem balstīta programmēšanas valoda. Pirmkārt, jums ir jāapkopo programma, izmantojot kompilatoru, un pēc tam varat palaist programmu.

Vietējās vides iestatīšana

Būtu labi, ja jūsu datorā būtu šāda programmatūra.

    C++ kompilators

Tas ir faktisks C++ kompilators, kas tiks izmantots, lai apkopotu jūsu avota kodu galīgajā izpildāmajā programmā. Lielākajai daļai C++ kompilatoru nav vienalga, kādu paplašinājumu piešķirat avota kodam. Visbiežāk izmantotais kompilators ir GNU C/C++ kompilators.

    Teksta redaktors

Programmatūra to izmanto rakstīšanai. Piemēri ir Windows Notepad, OS Edit, Short, Epsilon, EMACS un Vim vai VI komandas. Faili, kurus ģenerējat ar redaktoru, tiek saukti par avota failiem, un C++ faili tiek saukti par .cpp, .cp vai .c. Lai sāktu C++ programmēšanu, ir jābūt teksta redaktoram.

    Pamata sintakse

Tagad apskatīsim, ko nozīmē klase, objekts, metodes un gadījumu mainīgie.

    Objekts− Objektiem ir stāvokļi un uzvedība. Piemērs: kaķim ir apstākļi — krāsa, vārds, šķirne un darbības — luncināšana, ņaudēšana, ēšana. Objekts ir klases gadījums.Klase− Klase tiek definēta kā projekts, kas apraksta uzvedību/stāvokli, ko atbalsta tās tipa objekts.Metodes− Metode ir uzvedība. Klase var saturēt daudzas metodes. Metodēs, kurās tiek rakstīta loģika, tiek veiktas manipulācijas ar datiem un tiek izpildītas darbības.Gadījumu mainīgie− Katrā objektā ir unikāla instanču mainīgo kolekcija. Entītijas stāvokli ģenerē vērtības, kas piešķirtas šiem piemēru mainīgajiem.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Apskatīsim dažādas iepriekš minētās programmas daļas

  • Tam nepieciešama galvene.
  • Izmantojiet nosaukumvietu std; lai brīdinātu kompilatoru izmantot nosaukumvietas std.
  • Rinda int main() ir galvenā iezīme, kurā sākas programmas izpilde.
  • Nākamā rinda sagriež līdz<< Hello World; the word Hello World is reflected on the keyboard.
  • Nākamā rinda atgriež 0; galvenā() funkcija beidzas.

C++ pamata ievade/izvade

C++ I/O darbībai tiek izmantota straumes koncepcija. Straume ir baitu vai datu plūsmas secība. Tas padara veiktspēju ātru.

Ja baiti plūst no galvenās atmiņas uz ierīci, piemēram, printeri, displeju vai tīkla savienojumu utt., to sauc par izvades darbība.

Ja baiti plūst no ierīces, piemēram, printera, displeja ekrāna, tīkla savienojuma utt., uz galveno atmiņu, to sauc par ievades operācija.

Standarta izvades straume (cout)

The izmaksas ir iepriekš definēts objekts straume klasē. Tas ir savienots ar izvadierīci, kas parasti ir displeja ekrāns. Cout tiek izmantots, lai savienotos ar straumes ievietošanas operatoru, lai parādītu izvadi konsolē

PIEMĒRS

|_+_|

IZEJA

|_+_|

Standarta ievades straume (cin)

The džins ir iepriekš definēts objekts. Tas ir savienots ar ievades ierīci, kas parasti ir tastatūra. Cin tiek izmantots, lai pievienotos straumes ekstrakcijas operatoram (>>), lai nolasītu konsoles ievadi.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Standarta beigu līnija (endl)

The endl ir iepriekš definēts klases objekts. To izmanto, lai ievietotu jaunas rindas rakstzīmes un izskalotu straumi.

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ mainīgie

Mainīgais ir atmiņas vietas nosaukums. To izmanto datu glabāšanai. Vērtību var mainīt, un tā tiek izmantota vairākas reizes. Tas ir veids, kā attēlot atmiņas vietu, izmantojot simbolu, kas ir viegli identificējams. Mainīgajam var būt alfabēts, pasvītra un cipari. Mainīgā nosaukums var sākties ar alfabētu un tikai pasvītrojumu. Tas nevar sākties ar ciparu.

Mainīgā nosaukumā nav atļautas atstarpes.

Mainīgā nosaukums nedrīkst būt rezervēts vārds vai atslēgvārds, piemēram, char, float utt.

Derīgi mainīgo nosaukumi:

  • int a;
  • int _ab;
  • int a30;

Nederīgi mainīgo nosaukumi:

  • int 4;
  • intxy;
  • int dubultā;

C++ identifikatori

C++ identifikators tiek izmantots, lai identificētu mainīgo, funkciju, klasi, moduli vai jebkuru citu lietotāja definētu vienumu. Tas sākas ar A līdz Z vai no a līdz z vai pasvītrojumu (_), kam seko nulle vai vairāk burtu un 0 līdz 9. C++ identifikatoros nepieļauj pieturzīmes, piemēram, @, $ un %. Tā ir reģistrjutīga programmēšanas valoda. Tādējādi darbaspēks un darbaspēks ir divi dažādi identifikatori C++.

C++ datu tipi

TipsAtslēgvārdi
Raksturschar
Būlabool
Peldošais punktspeldēt
Dubultais peldošais komatsdubultā
Vesels skaitlisstarpt
Bezvērtīgsnederīgs
Plašs raksturswchar_t
Tips Tipisks bitu platums Tipisks diapazons
char1 baits-127 līdz 127 vai 0 līdz 255
neparakstīts raksts1 baits0 līdz 255
parakstīts char1 baits-127 līdz 127
wchar_t2 vai 4 baiti1 plata rakstzīme
starpt4 baiti-2147483648 līdz 2147483647
neparakstīts int4 baiti0 līdz 4294967295
parakstīts int4 baiti-2147483648 līdz 2147483647
īss int2 baiti-32768 līdz 32767
peldēt4 baiti
neparakstīts īss int2 baiti0 līdz 65 535
parakstīts īss int2 baiti-32768 līdz 32767
garš int8 baiti-2 147 483 648 līdz 2 147 483 647
parakstīts garš int8 baititas pats, kas garš int
neparakstīts garš int8 baiti0 līdz 4 294 967 295
garš garš int8 baiti-(2^63) līdz (2^63)-1
neparakstīts garš garš int8 baiti0 līdz 18 446 744 073 709 551 615
dubultā8 baiti
garš dubultā12 baiti

C++ konstantes/literāļi

Konstantes attiecas uz fiksētajām vērtībām, kuras programma var mainīt, un tās sauc par literāļiem.

Konstantes var būt jebkura neapstrādāta datu veida un ir sadalītas veselos skaitļos, rakstzīmēs, peldošā komata skaitļos, virknēs un Būla vērtībās.

Veselu skaitļu burti

Vesels skaitlis ir decimālā, oktālā vai heksadecimālā konstante.

Veselam skaitļa literālam ir sufikss, kas ir L un U kombinācija, attiecīgi garai un bezzīmei. Sufikss var būt mazais vai lielais, un tas var būt jebkurā secībā.

Piemēram, 212, 215u, 0xFeeL, 078, 032UU

Peldošā komata burti

Peldošā komata literātam ir vesela skaitļa daļa, daļēja daļa, decimālzīme un eksponenta daļa. Peldošā komata literāļus varat attēlot decimāldaļā vai eksponenciālā formā.

Atveidojot, izmantojot decimālo formu, ir jāiekļauj decimālpunkts, eksponents vai abi. Izmantojot eksponenciālo formu, jums ir jābūt daļējai daļai, vesela skaitļa daļai vai abiem. Parakstīto eksponentu ievada E vai e.

Būla burti

Ir divi Būla literāļi

  • Patiesības vērtība, kas atspoguļo patiesību.
  • Vērtība false, kas apzīmē false.

Rakstzīmju burti

Rakstzīmju literāļi ir ievietoti atsevišķās pēdiņās. Ja literāls sākas ar L, tas ir plaša rakstzīmju literāls, un tas ir jāsaglabā wchar_t veida mainīgajā. Pretējā gadījumā tas ir šaurs rakstzīmju burts un tiek saglabāts vienkāršā char tipa mainīgajā.

Bēgšanas secība Nozīme
\ raksturs
'‘ raksturs
raksturs
?? raksturs
uzBrīdinājums vai zvans
Backspace
fVeidlapas plūsma
Jaunā rinda
Rakstatgriezes
Horizontālā cilne
vVertikālā cilne
oooAstoņskaitlis no viena līdz trīs cipariem
xhh . . .Heksadecimālais skaitlis ar vienu vai vairākiem cipariem

C++ uzglabāšanas klases

Automātiskā krātuves klase

Tā ir noklusējuma krātuves klase visiem vietējiem mainīgajiem.

SINTAKSE

|_+_|

Reģistra uzglabāšanas klase

Tos izmanto, lai definētu vietējos mainīgos, kas tiek glabāti reģistrā, nevis RAM. Tas nozīmē, ka mainīgā maksimālais lielums ir vienāds ar reģistra lielumu, un tam nevar tikt piemērots operators “&”.

SINTAKSE

|_+_|

Statiskā uzglabāšanas klase

Tas liek kompilatoram programmas laikā saglabāt lokālo mainīgo, nevis to izveidot un iznīcināt. Tādējādi, padarot vietējos mainīgos statiskus, tie var saglabāt vērtības starp funkciju izsaukumiem.

Ārējā uzglabāšanas klase

To izmanto, lai sniegtu atsauci uz globālo mainīgo, kas ir redzams katram programmas failam. Ja izmantojat “ārējo”, mainīgo nevar inicializēt.

Maināmā uzglabāšanas klase

Maināmais specifikators attiecas uz klases objektiem. Tas piedāvā objekta dalībniekam ignorēt const dalībnieka funkciju. Tas nozīmē, ka mainīgu locekli var modificēt ar const locekļa funkciju.

C++ modifikatoru veidi

C++ piedāvā char, int un dubulto datu tipus, lai pirms tiem būtu modifikatori. Modifikators tiek izmantots, lai mainītu bāzes tipa nozīmi, lai tas precīzāk atbilstu dažādu situāciju vajadzībām.

Datu tipu modifikatori ir minēti tālāk

  • parakstīts
  • neparakstīts
  • garš
  • īss

Modifikatori ar parakstīto, neparakstīto, garo un īso tiek lietoti veselu skaitļu bāzes tipiem. Turklāt parakstītais un neparakstītais tiek lietots char, un long tiek piemērots dubultā.

Parakstītie un neparakstītie modifikatori tiek izmantoti kā garo vai īso modifikatoru prefiksi.

Kvalifikatoru veidi

    konst: tipa objekti konst izpildes laikā programma nevar mainīt.nepastāvīgs: rediģēšana nepastāvīgs norāda kompilatoram, ka mainīgā lieluma vērtību var mainīt tādos veidos, kas nav skaidri norādīti programmā.ierobežot: rādītājs, ko kvalificē ierobežot ir vienīgais līdzeklis, ar kuru var piekļūt objektam, uz kuru tas norāda. C99 pievieno jauna veida kvalifikatoru, ko sauc par ierobežojumu.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Operatori C++ valodā

Operators ir simbols, kas palīdz kompilatoram veikt noteiktas matemātiskas vai loģiskas manipulācijas. C++ ir dažādi iebūvēti operatori un piedāvā šādus operatoru veidus −

  • Aritmētiskais operators
  • Loģiskais operators
  • Bitu operators
  • Uzdevuma operators
  • Relāciju operators
  • Dažādi operatori

Aritmētiskais operators

Aritmētiskie operatori nav nekas cits kā operatori, kurus izmanto, lai veiktu aritmētiskās darbības starp mainīgajiem vai divām vērtībām.

Operatori Apraksts Sintakse
+Pievieno divus operandusa+b
*Reizina divus operandusa*b
Atņem divus operandusa-b
/Sadala pirmo operandu ar otroa/b
%Atgriež atlikumu, kad pirmais operands tiek dalīts ar otroa%b
++Tas palielina veselo skaitļu vērtību par vienua++
Tas samazina veselo skaitļu vērtību par vienuuz-

Loģiskais operators

Loģiskie operatori programmā C++ apvieno mainīgo patiesās vai nepatiesās vērtības, lai jūs varētu noskaidrot to iegūto patiesības vērtību.

Operatori Apraksts Sintakse
Vai (||)Patiess, ja kāds no operandiem ir patiess(A || B) ir taisnība.
Un (&&)Patiess, ja abi operandi ir patiesi(A && B) ir nepatiess.
Nav (!)Ja nosacījums ir patiess, operators Logical NOT padarīs nepatiesu.!(A && B) ir taisnība.

Bitu operators

Programmā C++ bitu operatori veic bitu aprēķinus veseliem skaitļiem. Bitu operators: atgriež 1, ja abi biti ir 1 un 0. Piemērs: a = 10 = 1010 (binārais) b = 4 = 0100 (binārais a & b = 1010 & 0100 = 0000 = 0 (decimāldaļa) bitu pakāpē vai operators: atgriež 1, ja kāds no bitiem ir 1 cits 0.

Operatori Apraksts Sintakse
>>Binārā maiņa pa labi x>>x>>
<< Binārā nobīde pa kreisix<<
^Binārais XORx ^ y
&Binārais UNx un y
|Binārs VAIx | Y
~Bināri NAV~x

Uzdevuma operators

Piešķiršanas operatori mainīgajiem piešķir vērtības. a = 5 ir piešķiršanas operators, kas iestata vērtību 5 labajā pusē mainīgajam a kreisajā pusē.

Operatori Apraksts Sintakse
=Labās puses izteiksmes vērtību piešķiršana kreisās puses operandam.a=b+c
+=Pievienojiet labās puses operandu ar kreisās puses operandu un pēc tam piešķiriet kreisajam operandam.a+=b a=a+b
-=Atņemiet labā operandu no kreisās puses operanda un pēc tam piešķiriet to kreisajam operandam.a-=b a=a-b
/=Sadaliet kreisās puses operandu ar labās puses operandu un pēc tam piešķiriet kreisajam operandam.a/=b a=a/b
%=Paņemiet moduli, izmantojot kreiso un labo operandu, un piešķiriet rezultātu kreisajam operandam.a%=b a=a%b
*=Aprēķiniet eksponenta vērtību, izmantojot operandus, un piešķiriet vērtību kreisajam operandam.a*=b a=a*b
&=Operandam veic bitu pagriezienu UN un piešķir vērtību kreisajam operandam.a&=b a=a&b
|=Operandam veic bitu pagriezienu VAI un piešķir vērtību kreisajam operandam.a|=b a=a|b
^=Operandam veic bitu pagriezienu VAI un piešķir vērtību kreisajam operandam.a^=b a=a^b
>>=Veiciet operandam bitu pa labi nobīdi un piešķiriet vērtību kreisajam operandam.a>>=b a=a>>b
<<=Veic bitu pa kreisi nobīdi operandā un piešķir vērtību kreisajam operandam.uz<<= b a= a << b

Relāciju operators

Relāciju operatori ir operatori, kurus izmanto, lai salīdzinātu divas vērtības vai objektus.

Operatori Apraksts Sintakse
>Varenāks, kāx > y
<Mazāk nekāx
==Vienlīdzīgix == y
!=Nav vienādsx != y
>=Lielāks par vai vienāds arx >= y
<= Mazāks par vai vienāds arx<= y

Dažādi operatori

Operators Apraksts
Stāvoklis? X: YJa nosacījums ir patiess, tas atgriež X vērtību, pretējā gadījumā atgriež Y vērtību.
,Tas izraisa darbību secību. Komata vērtība ir saraksta pēdējās izteiksmes vērtība, kas atdalīta ar komatu.
izmērsTas atgriež mainīgā lielumu. Piemēram, sizeof(a), kur “a” ir vesels skaitlis un atgriež 4.
*Tas ir rādītājs uz mainīgo. Piemēram *var; norādīs uz mainīgo var.
CastTas pārvērš vienu datu tipu citā.
. (punkts) un -> (bultiņa)Tos izmanto, lai atsauktos uz atsevišķiem klašu, struktūru un arodbiedrību locekļiem.
&Tas atgriež mainīgā adresi.

C++ cilpas

cilpai

C++ for cilpa tiek izmantota, lai vairākas reizes atkārtotu programmas daļu. Ja atkārtojumu skaits ir fiksēts, ieteicams izmantot cilpu, nevis cilpas while vai do-while.

C++ cilpa ir tāda pati kā C/C#. Mēs varam inicializēt mainīgos, pārbaudīt stāvokli un palielināt/samazināt vērtību.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

IZEJA

|_+_|

Nested For Loop

Programmā C++ varat izmantot cilpu citā cilpā. Tas ir pazīstams kā ligzdots cilpai. Iekšējā cilpa tiek izpildīta pilnībā, kad ārējā cilpa tiek izpildīta vienu reizi. Tātad, ja ārējā cilpa un iekšējā cilpa tiek izpildītas četras reizes, iekšējā cilpa katrai ārējai cilpai tiks izpildīta četras reizes, t.i., kopā 16 reizes.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Kamēr cilpa

Programmā C++, kamēr cilpa tiek izmantota, lai vairākas reizes atkārtotu programmas daļu. Ja atkārtojumu skaits nav fiksēts, ieteicams izmantot cilpu while, nevis cilpu.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

IZEJA

|_+_|

Nested While Loop

Programmā C++ var izmantot while cilpu citā while cilpā; tā ir pazīstama kā ligzdota cilpa. Ligzdotā while cilpa tiek izpildīta, kad ārējā cilpa tiek izpildīta vienreiz.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Do-while cilpa

C++ do-while cilpa tiek izmantota, lai vairākas reizes atkārtotu programmas daļu. Ja atkārtojumu skaits nav fiksēts un cilpa ir jāizpilda vismaz vienu reizi, ieteicams izmantot do-while cilpu.

C++ do-while cilpa tiek izpildīta vismaz vienu reizi, jo nosacījums tiek pārbaudīts pēc cilpas pamatteksta.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

IZEJA

|_+_|

Ligzdota Do-While cilpa

Programmā C++, ja izmantojat do-while cilpu citā do-while cilpā, to sauc par ligzdotu do-while cilpu. Ligzdotā do-while cilpa tiek pilnībā izpildīta katrai ārējai do-while cilpai.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Lēmumu pieņemšanas paziņojumi

Reālajā dzīvē ir situācijas, kad jums ir jāpieņem daži lēmumi, un, pamatojoties uz šiem lēmumiem, jūs izlemjat, kas jums jādara tālāk. Līdzīgas problēmas rodas programmēšanā arī tad, ja jums ir jāpieņem daži lēmumi, un, pamatojoties uz šiem lēmumiem, jūs izpildīsit nākamo koda bloku.

Lēmumu pieņemšanas paziņojumi programmēšanas valodās nosaka programmas izpildes plūsmas virzienu. C++ valodā pieejamie lēmumu pieņemšanas paziņojumi ir:

  • ja paziņojums
  • ja..citi apgalvojumi
  • ligzdotie if paziņojumi
  • ja-citādi-ja kāpnes
  • Pārlēkšanas paziņojumi:
    • pārtraukums
    • Turpināt
    • iet uz
    • atgriezties

ja paziņojums

ja paziņojums ir vienkāršs lēmuma pieņemšanas paziņojums. To izmanto, lai izlemtu, vai paziņojumu bloks tiks izpildīts vai nē. Ja nosacījums ir patiess, tad paziņojuma bloks tiek izpildīts pretējā gadījumā ne.

SINTAKSE

|_+_|

Šeit, nosacījumiem pēc novērtējuma būs patiess vai nepatiess. ja paziņojums pieņem Būla vērtības.

PIEMĒRS

|_+_|

IZEJA

|_+_|

ja vēl paziņojums

If paziņojums norāda, ka, ja nosacījums ir patiess, tas izpildīs priekšrakstu bloku, un, ja nosacījums ir nepatiess, tas netiks izpildīts. Varat izmantot priekšrakstu else ar paziņojumu if, lai izpildītu koda bloku, ja nosacījums ir nepatiess.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

IZEJA

|_+_|

Nested if paziņojumi

Ligzdots if valodā C++ ir if priekšraksts, kura mērķis ir cits if priekšraksts. Ligzdotie if paziņojumi nozīmē, ka if priekšraksts ir cita if priekšraksta iekšpusē. Jā, gan C, gan C++ piedāvā mums ligzdotos if paziņojumus if priekšrakstos, t.i., varat ievietot if priekšrakstu cita if priekšraksta iekšpusē.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

IZEJA

|_+_|

ja-citādi-ja kāpnes

Lietotājs var izvēlēties starp dažādām iespējām. If paziņojumi tiek izpildīti no augšas uz leju. Tiklīdz nosacījumi kontrolē if ir patiess, tad ar to saistītais paziņojums tiek izpildīts un pārējais else-if kāpnes tiek pārtrauktas. Ja nosacījumi nav patiesi, tad tiks veikts pēdējais un pēdējais paziņojums.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

IZEJA

|_+_|

Pārlēkšanas paziņojumi

Pārtraukt

Šis paziņojums tiek izmantots, lai pārtrauktu cilpu. Tiklīdz cilpas iekšienē tiek konstatēts pārtraukuma paziņojums, cilpas iterācijas apstājas un vadība nekavējoties atgriežas pirmajā priekšrakstā pēc cilpas.

SINTAKSE
Pārtraukums;

Pārtraukuma paziņojumi tiek izmantoti situācijās, kad mēs neesam pārliecināti par cilpas faktisko iterāciju skaitu vai pārtraucam cilpu, pamatojoties uz kādu nosacījumu.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Turpināt

Paziņojums turpināt ir pretējs pārtraukuma paziņojumam; tā vietā, lai pārtrauktu cilpu, tas piespiež nākamo cilpas iterāciju.

Paziņojums turpināt piespiež cilpu izpildīt nākamo iterāciju. Kad tiek izpildīts priekšraksts turpināt, kods cilpas iekšpusē, kas seko priekšrakstam turpināt, tiek izlaists, un tiks sākta nākamā iterācija.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

IZEJA

|_+_|

Iet uz

Paziņojums goto valodā C++ attiecas uz beznosacījumu lēciena paziņojumu, ko izmanto, lai funkcijas ietvaros pārietu no viena punkta uz citu.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

IZEJA

|_+_|

Atgriezties

Atgriešanās programmā C++ atgriež funkcijas izpildes plūsmu. Šim apgalvojumam nav nepieciešami nosacījumi. Kad paziņojums ir izpildīts, programmas plūsma nekavējoties apstājas un atgriež vadīklu no vietas, kur tā tika izsaukta. Atgriešanas priekšraksts var vai nevar atgriezt neko nederīgai funkcijai, bet atgriešanas vērtība ir jāatgriež funkcijai, kas nav spēkā neesoša.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ funkcijas

Funkcija attiecas uz paziņojumu grupu, kas ņem ievadi, apstrādā to un atgriež izvadi. Funkcijas mērķis ir apvienot uzdevumus, kas tiek veikti atkal un atkal. Ja jums ir dažādas ievades, jums nav jāraksta tas pats kods vēlreiz. Varat izsaukt funkciju ar citu datu kopu, kas pazīstama kā parametri.

C++ programmai ir vismaz viena funkcija, funkcija main().

Funkcijas definēšana

Funkcijas definīcija programmā C++ sastāv no funkcijas galvenes un pamatteksta.

    Atgriešanas veids− Tas var atgriezt vērtību. Dažas funkcijas veic darbības, neatgriežot vērtību. Šajā gadījumā atslēgvārds ir return_type nederīgs .Funkcijas nosaukums− Tas ir faktiskais funkcijas nosaukums. Funkcijas nosaukums un saraksts kopā veido funkcijas parakstu.Parametri− Parametrs ir gluži kā vietturis. Kad funkcija tiek izsaukta, jūs nododat vērtību parametram. Šī vērtība ir pazīstama kā faktiskais parametrs vai arguments. Parametru saraksts attiecas uz funkcijas secību, veidu un vairākiem funkcijas parametriem.Funkciju korpuss− Pamatteksts satur paziņojumu kopumu, kas nosaka, ko funkcija dara.

PIEMĒRS

|_+_|

Funkcijas deklarēšana

Programmā C++ funkcijas ir jādeklarē pirms to izmantošanas. Varat deklarēt funkciju, norādot tās atgriešanas vērtību, nosaukumu un argumentu veidus. Argumentu nosacījumi nav obligāti. Funkcijas definīcija tiek uzskatīta par funkcijas deklarāciju.

PIEMĒRS

|_+_|

Funkcijas izsaukšana

Kamēr veidojat C++ funkciju, jūs definējat, kas šai funkcijai ir jādara. Lai izmantotu funkciju, šī funkcija ir jāizsauc vai jāizsauc.

Kad programma izsauc funkciju, programmas vadība tiek nodota izsauktajai funkcijai. Izsauktā funkcija veic definētu uzdevumu, un, kad tiek izpildīts tās atgriešanas priekšraksts vai tiek sasniegta tās funkcijas beigu beigu skava, tā atgriež programmas vadību galvenajai programmai.

PIEMĒRS

|_+_|

Funkciju argumenti

Ja funkcija izmanto argumentus, tai ir jādeklarē mainīgie, kas pieņem argumentu vērtības. Šie mainīgie ir pazīstami kā funkcijas formālie parametri.

    Zvanīt pēc vērtības: tā kopē faktisko argumenta vērtību funkcijas formālajā parametrā. Funkcijas parametrā veiktās izmaiņas argumentu neietekmē.Zvanīt ar rādītāju: tas kopē argumenta adresi formālajā parametrā. Šīs funkcijas ietvaros adrese tiek izmantota, lai piekļūtu izsaukumā izmantotajam argumentam. Tas nozīmē, ka parametrā veiktās izmaiņas ietekmē argumentu.Zvanīt pēc uzziņas: tā kopē argumenta atsauci formālajā parametrā. Šīs funkcijas ietvaros atsauce tiek izmantota, lai piekļūtu izsaukumā izmantotajam argumentam. Tas nozīmē, ka parametrā veiktās izmaiņas ietekmē argumentu.

C++ cipari

Parasti, strādājot ar numuriem, mēs izmantojam primitīvus datu tipus, piemēram, int, short, long, float, double utt. Datu tipu skaits, to iespējamās vērtības un skaitļu diapazoni ir izskaidroti, apspriežot C++ datu tipus.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Matemātikas operatori C++ valodā

JĀ NĒ Funkcijas Mērķis
viens dubultgrēks(dubultais);Tas aizņem leņķi (kā dubultā) un atgriež sinusu.
divi dubultā cos (dubultā);Tas aizņem leņķi (kā dubultā) un atgriež kosinusu.
3 dubultiedegums (dubults);Tas aizņem leņķi (kā dubultā) un atgriež tangensu.
4 dubultā pow(dubultā, dubultā);Pirmais ir skaitlis, kuru vēlaties palielināt, un otrais ir jauda, ​​kuru vēlaties palielināt t
5 dubultā baļķa (dubultā);Tas aizņem skaitli un atgriež šī skaitļa dabisko žurnālu.
6 dubultā hipotēze (dubultā, dubultā);Ja jūs izturēsit šo taisnleņķa trijstūra divu malu garumu, tas atgriezīs hipotenūzas garumu.
7 dubultā kvadrātā (dubultā);Jūs nododat funkcijai skaitli, un tas dod jums kvadrātsakni.
8 int abs(int);Tas atgriež tam nodotā ​​veselā skaitļa absolūto vērtību.
9 divstāvu (divstāvu);Atrod veselu skaitli, kas ir mazāks vai vienāds ar tam nodoto argumentu.
10 dubultie audumi (dubulti);Tas atgriež jebkura tam nodotā ​​decimālskaitļa absolūto vērtību.

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ masīvi

Masīvs C++ ir vienumu kolekcija, kas glabājas blakus esošās atmiņas vietās, un elementiem var piekļūt nejauši, izmantojot masīva indeksus. Tos izmanto līdzīgu elementu glabāšanai, jo datu tipam ir jābūt vienādam visiem elementiem. Tie var saglabāt primitīvus datu tipus, piemēram, char, int, float, double utt. Lai to papildinātu, masīvs programmā C++ var saglabāt atvasinātus datu tipus, piemēram, struktūras, norādes utt. Tālāk ir sniegts gleznains masīva attēlojums. .

Masīva deklarācija

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

Šeit,

  • int – saglabājamā elementa veids
  • y – masīva nosaukums
  • 4 – masīva lielums

Piekļūstiet elementiem masīvā

Katrs masīva elements ir saistīts ar skaitli. Skaitli sauc par masīva indeksu. Masīva elementiem var piekļūt, izmantojot indeksus.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

Šeit ir daži svarīgi C++ masīvu jēdzieni

    Daudzdimensiju masīvi: Divdimensiju masīvs ir vienkāršākā daudzdimensiju masīva forma.Norādiet uz masīvu: Jūs ģenerēsit rādītāju uz pirmo masīva elementu, minot masīva nosaukumu bez indeksa.Masīvu nodošana funkcijām: Jūs nosūtīsit funkcijai rādītāju uz masīvu, norādot masīva nosaukumu bez indeksa.Atgriezt masīvu no funkcijām: C++ ļauj funkcijai atgriezt masīvu.

C++ virknes

Tā ir rakstzīmju kolekcija. C++ programmēšanas valodā tiek izmantotas divu veidu virknes:

  • Virknes, kas ir stīgu klases objekti
  • C-stīgas

Stīgu klase

C++ bibliotēka nodrošina a virkne klases tips, kas atbalsta visas iepriekš minētās darbības, turklāt daudz vairāk funkcionalitātes.

PIEMĒRS

|_+_|

IZEJA

|_+_|

C stīgas

Šī virkne radās C valodā un tiek atbalstīta C++. Šī virkne ir viendimensionāls rakstzīmju masīvs, kas beidzas ar nulles rakstzīmi “”. Tādējādi nulles beigu virkne satur rakstzīmes, kas sastāv no virknes, kam seko nulle.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Dažas funkcijas, kas manipulē ar nulles gala virknēm

    strcpy(s1, s2);

Tas kopē virkni s2 virknē s1.

    strcat(s1, s2);

Tas savieno virkni s2 ar virknes s1 beigām.

    strstr(s1, s2);

Tas atgriež rādītāju uz virknes s2 rašanos virknē s1.

    strlen(s1);

Tas atgriež virknes s1 garumu.

    strcmp(s1, s2);

Tas atgriež 0, ja s1 un s2 ir vienādi; mazāks par 0, ja s1s2.

    strchr(s1, ch);

Tas atgriež rādītāju uz rakstzīmes ch rašanos virknē s1.

C++ norādes

Rādītāji ir adrešu attēlojums. Tie ļauj programmām simulēt zvanu pēc atsauces un izveidot un manipulēt ar dinamiskām datu struktūrām.

SINTAKSE

|_+_|

Kā lietot rādītāju?

  • Pirmkārt, definējiet rādītāja mainīgo
  • Tagad piešķiriet mainīgā adresi rādītājam, izmantojot (&), kas atgriež šī mainīgā adresi.
  • Piekļūstot adresē saglabātajām vērtībām, izmantojot (*), kas atgriež mainīgā vērtību, kas atrodas tā operanda norādītajā adresē.

Dažas norādes koncepcijas

    Null norādes: tā ir konstante ar nulles vērtību, kas noteikta dažādās standarta bibliotēkās.Rādītāja aritmētika: Rādītājiem var izmantot četrus aritmētiskos operatorus: ++, –, +, –Rādītāji pret masīviem: starp rādītājiem un masīviem ir cieša saikne.Rādītāju masīvs: varat definēt masīvus, lai turētu vairākus rādītājus.Rādītājs uz rādītāju: C++ piedāvā, lai uz rādītāja būtu rādītājs un tā tālāk.Rādītāju nodošana funkcijām: Nodošana pēc atsauces vai adreses ļauj izsauktajā funkcijā mainīt doto paziņojumu izsaucošajā funkcijā.Atgriezties rādītājs no funkcijām: C++ piedāvā funkciju, lai atgrieztu rādītāju uz lokālo mainīgo, statisko mainīgo un arī dinamiski piešķirto atmiņu.

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ atsauces

Atsauces mainīgais ir jau esoša mainīgā nosaukums. Kad atsauce ir inicializēta, lai atsauktos uz mainīgo, var izmantot mainīgā nosaukumu vai atsauces nosaukumu.

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ datums un laiks

C++ bibliotēka nenodrošina pareizu datuma veidu. Tas pārmanto struktūras un funkcijas datuma un laika manipulācijām no C. Lai piekļūtu ar datumu un laiku saistītām funkcijām un struktūrām, jums savā C++ programmā ir jāiekļauj galvenes fails.

Ir četri ar laiku saistīti veidi: pulkstenis_t, laiks_t, izmērs_t un tm. Veidi – clock_t, size_t un time_t spēj attēlot sistēmas laiku un datumu kā veselu skaitli.

PIEMĒRS

|_+_|

Dažas svarīgas funkcijas

    laiks_t laiks(laiks_t *laiks);

Tas atgriež pašreizējo kalendāra laiku vairākās sekundēs, kas pagājušas kopš 1970. gada 1. janvāra. Ja sistēmai nav laika, tiek atgriezts .1.

    char *ctime(const time_t *time);

Tas atgriež rādītāju uz formas virkni diena mēnesis gads stundas: minūtes: sekundes.

    struct tm *localtime(const time_t *time);

Tas atgriež rādītāju uz tm struktūra, kas attēlo vietējo laiku.

    pulkstenis_t pulkstenis(tukšs);

Tas atgriež vērtību, kas aptuveni atbilst izsaucošās programmas darbības laikam. Ja laiks nav pieejams, tiek atgriezta vērtība .1.

    char * asctime ( const struct tm * laiks );

Tas atgriež rādītāju uz virkni, kurā ir informācija, kas saglabāta struktūrā, kas norādīta ar laiku, kas pārvērsta formā: diena mēnesis datums stundas: minūtes: sekundes

    struct tm *gmtime(const time_t *time);

Tas atgriež rādītāju uz laiku tm struktūras veidā.

    laiks_t mktis(struct tm *laiks);

Tas atgriež kalendāra laiku, kas atrodams struktūrā, uz kuru norāda laiks.

    double difftime ( laiks_t laiks2, laiks_t laiks1 );

Tas aprēķina starpību sekundēs starp time1 un time2.

    size_t strftime();

To var izmantot, lai formatētu datumu un laiku noteiktā formātā.

C++ datu struktūras

C++ masīvi piedāvā definēt mainīgos, kas apvieno vairākus viena veida datu vienumus. Tomēr, struktūra ir vēl viens lietotāja definēts datu tips, kas ļaus apvienot dažāda veida datu vienumus. Struktūras tiek izmantotas, lai attēlotu ierakstu.

Struktūras definēšana

Lai definētu struktūru, jāizmanto struct priekšraksts. Struktūras priekšraksts definē programmas datu tipu ar vairāk nekā vienu dalībnieku.

|_+_|

The struktūras tags nav obligāta. Definīcijas beigās pirms pēdējā semikola jānorāda viens vai vairāki struktūras mainīgie.

Piekļuve struktūras dalībniekiem

Lai piekļūtu jebkuram struktūras dalībniekam, varat izmantot dalībnieka piekļuves operators (.) . Dalībnieka piekļuves operators tiek kodēts kā periods starp struktūras mainīgā nosaukumu un struktūras dalībnieku, kuram mēs vēlamies piekļūt. Jūs izmantotu struktūra atslēgvārds, lai definētu struktūras tipa mainīgos.

Struktūras kā funkciju argumenti

Struktūru var nodot kā funkcijas argumentu tāpat kā jebkuru citu mainīgo vai rādītāju.

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ klases un objekti

Viss programmā C++ ir saistīts ar klasēm un objektiem, kā arī to atribūtiem un metodēm. Piemēram: reālajā dzīvē autobuss ir objektu . Autobusam ir atribūti , piemēram, svars un krāsa, un metodes , piemēram, piedziņa un bremzes.

Atribūti un metodes ir mainīgie un funkcijas kas pieder klasei. Tie ir pazīstami kā klases dalībnieki. Klase ir lietotāja definēts datu tips, ko varat izmantot programmā, un tas darbojas kā objektu konstruktors vai projekts objektu izveidei.

Izveidojiet klasi

Ja vēlaties izveidot klasi, jums ir jāizmanto klasē atslēgvārds:

PIEMĒRS

|_+_|

Izveidojiet objektu

Programmā C++ objekts tiek izveidots no klases.

Lai izveidotu objektu, jānorāda klases nosaukums, kam seko objekta nosaukums. Lai piekļūtu klases atribūtiem, objektam izmantojiet punktu sintaksi (.):

PIEMĒRS

|_+_|

Daži jēdzieni detalizēti

    Klases locekļa funkcijas: Dalībnieka funkcija ir funkcija, kuras prototips ietilpst klases definīcijā, tāpat kā jebkuram citam mainīgajam.Klases piekļuves pārveidotāji: klases dalībnieku var definēt kā privātu, publisku, aizsargātu. Pēc noklusējuma tas ir privāts.Celtnieks: Konstruktors ir funkcija klasē, kas tiek izsaukta, kad tiek izveidots jauns objekts.Iznīcinātājs: Destruktors ir funkcija, kas tiek izsaukta, kad izveidotais objekts tiek dzēsts.Kopēšanas konstruktors:Tas ir konstruktors, kas izveido objektu, inicializējot to ar tās pašas klases objektu, kas ir izveidots iepriekš.Drauga funkcijas: nodrošina pilnu piekļuvi privātiem un aizsargātiem klases dalībniekiem.Iekļautās funkcijas: kompilators paplašina kodu funkcijas pamattekstā funkcijas izsaukuma vietā.šis rādītājs: katram objektam ir īpašs rādītājs šis kas norāda uz pašu objektu.Statiski klases dalībnieki: gan klases datu elementus, gan funkciju elementus var deklarēt kā statiskus.

C++ mantošana

Mantojums ir process, kurā objekts automātiski iegūst visas tā galvenā objekta īpašības un darbības. Varat modificēt atribūtus un darbības, kas definētas citās klasēs.

Klase, kas manto citas klases locekļus, ir pazīstama kā atvasināta klase, un klase, kuras locekļi tiek mantoti, ir pazīstama kā pamatklase. Atvasinātā klase ir specializētā klase bāzes klasei.

Mantojuma veidi

    Vienreizējs mantojumsir mantojuma veids, kurā atvasinātā klase tiek mantota tikai no vienas bāzes klases.

“A” ir pamatklase,

“B” ir atvasināta klase.

cplusplus
    Daudzlīmeņu mantošanair klases atvasināšana no citas atvasinātas klases. C klase manto B klases īpašības un B klase manto B klases īpašības. A ir B klases pamatklase un B klase ir C vecākklase.
img 617dd1cc84e68
    Daudzkārtējs mantojumsAtvasināta klase tiek izveidota no vienas vai vairākām bāzes klasēm. C klase pārmanto B un A klases īpašības un uzvedību. Tātad šeit A un B klase ir C klases vecākklases.
img 617dd1ccd67cc
  • In Daudzceļu mantošana, atvasināta klase tiek izveidota no citas atvasinātas klases un tās pašas citas atvasinātās klases bāzes klases. Šo mantojumu neatbalsta . TĪKLS Valodas, piemēram, C#, F# utt.

D klase manto C un B klases, kā arī A klases īpašības un uzvedību. C klase, bet B klase manto A klasi. A klase ir B klases un C un D klases vecākzīme.

img 617dd1cd9230a
    Hibrīda mantošanair vairāk nekā viena mantojuma kombinācija. Tādējādi tā var būt vairāku līmeņu mantojuma un vairāku līmeņu mantojuma un daudzlīmeņu mantojuma un daudzceļu mantojuma kombinācija.
img 617dd1cdf0c4e

C++ piekļuves modifikatori

Piekļuves modifikatori tiek izmantoti, lai ieviestu būtisku objektorientētas programmēšanas aspektu, kas pazīstams kā datu slēpšana. Piekļuves pārveidotāji klasē tiek izmantoti, lai piešķirtu piekļuvi klases dalībniekiem. Tas nosaka dažus ierobežojumus klases dalībniekiem, lai ārējās funkcijas nevarētu tieši piekļūt.

Programmā C++ ir pieejami trīs veidu piekļuves modifikatori:

  • Publisks
  • Privāts
  • Aizsargāts

Apspriedīsim tos sīkāk:

Publisks

Visi klases dalībnieki, kas ir deklarēti publiskajā specifikācijā, ir pieejami ikvienam. Dalībnieku funkcijām, kas deklarētas kā publiskās, var piekļūt arī citas klases un funkcijas. Klases publiskajiem dalībniekiem var piekļūt no jebkuras vietas programmā, izmantojot piekļuves operatoru (.) ar šīs klases objektu.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Privāts

Dalībnieku funkcijas klasē var piekļūt tikai tiem klases dalībniekiem, kas ir pasludināti par privātiem. Tiem nevar tieši piekļūt neviens objekts vai funkcija ārpus klases. Tikai draugu funkcijām ir atļauts piekļūt klases dalībnieku privātajiem datiem.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Aizsargāts

Aizsargāts piekļuves modifikators ir tas pats, kas privāts piekļuves modifikators, jo tam nevar piekļūt ārpus tās klases, ja vien ar draugu klases palīdzību atšķirība ir tāda, ka klases dalībniekiem, kas ir deklarēti kā aizsargāti, var piekļūt jebkura atvasināta klase. arī no tās klases.

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ pārslodze

C++ programmēšanas valoda ļauj norādīt vairāk nekā vienu definīciju a funkcija vārds vai an operators tādā pašā apjomā, ko sauc funkciju pārslodze un operatora pārslodze , attiecīgi.

Pārslogota deklarācija tiek deklarēta ar tādu pašu nosaukumu kā iepriekš deklarēta deklarācija tajā pašā tvērumā, izņemot to, ka abām deklarācijām ir atšķirīgi argumenti un atšķirīgas definīcijas.

Funkciju pārslodze

Funkciju pārslodze ir līdzeklis, kas piedāvā vairāk nekā vienu funkciju ar tādu pašu nosaukumu, bet atšķirīgu parametru sarakstu.

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ polimorfisms

Operatora pārslodze

Varat likt operatoriem darboties lietotāja definētām klasēm. Tas nozīmē, ka C++ var nodrošināt operatoriem īpašu nozīmi datu tipam. To sauc par operatora pārslodzi.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Tas ir svarīgs objektorientētas programmēšanas jēdziens. Tas nozīmē vairāk nekā vienu formu. Tas nozīmē, ka viena un tā pati vienība dažādos scenārijos darbojas atšķirīgi.

Funkciju ignorēšana

Tāda pati funkcija var būt gan pamata klasē, gan atvasinātajās klasēs. Izsaucot funkciju, izmantojot atvasinātās klases objektu, tiek izpildīta atvasinātās klases funkcija, nevis bāzes klase.

Tāpēc atkarībā no objekta, kas izsauc funkciju, tiek izpildītas dažādas funkcijas. To sauc par funkciju ignorēšanu

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ virtuālās funkcijas

Programmā C++ jūs, iespējams, nevarēsit ignorēt funkcijas, ja mēs izmantojam bāzes klases rādītāju, lai norādītu uz atvasinātās klases objektu.

Virtuālo funkciju izmantošana pamatklasē nodrošina, ka šajos gadījumos funkciju var ignorēt. Tādējādi uz virtuālajām funkcijām attiecas funkciju ignorēšana.

Tīras virtuālās funkcijas

Iespējams, ka vēlaties iekļaut virtuālo funkciju pamatklasē, lai to varētu atkārtoti definēt atvasinātā klasē, lai tā atbilstu šīs klases objektiem, taču nav jēgpilnas definīcijas, ko varētu sniegt funkcijai bāzes klasē. .

PIEMĒRS

|_+_|

C++ datu abstrakcija

Datu abstrakcija ir viena no galvenajām objektorientētās programmēšanas iezīmēm C++. Abstrakcija nozīmē tikai atbilstošas ​​informācijas parādīšanu un detaļu slēpšanu. Datu abstrakcija attiecas uz tikai būtiskas informācijas sniegšanu par ārpasaules datiem, fona informācijas slēpšanu vai ieviešanu.

Abstrakcija, izmantojot klases

Abstrakciju var ieviest programmā C++ ar klašu palīdzību. Klase palīdz grupēt datu dalībniekus un dalībnieku funkcijas, izmantojot pieejamos piekļuves specifikācijas. Klase var izlemt, kurš datu dalībnieks būs redzams ārpasaulei un kurš nē.

Abstrakcija, izmantojot piekļuves specifikācijas

Piekļuves specifikācijām ir būtiska loma abstrakcijas ieviešanā C++. Varat izmantot piekļuves specifikācijas, lai ieviestu ierobežojumus klases dalībniekiem. Piemēram:

  • Dalībniekiem, kas klasē deklarēti kā publiski, var piekļūt no jebkuras programmas vietas.
  • Dalībniekiem, kas klasē ir deklarēti kā privāti, var piekļūt tikai no klases. Tiem nav atļauts piekļūt no jebkuras koda daļas ārpus klases.

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ datu iekapsulēšana

Tas ir funkciju un datu elementu apvienošanas process vienā vienībā, ko sauc par klasi. Tas ir paredzēts, lai novērstu tiešu piekļuvi datiem. Piekļuve tiem tiek nodrošināta, izmantojot klases funkcijas. Tā ir viena no populārākajām objektorientētās programmēšanas funkcijām, kas palīdz slēpt datus.

Lai to īstenotu

  • Padariet visus datu dalībniekus privātus.
  • Izveidojiet publisku iestatītāja un ieguvēja funkcijas katram datu dalībniekam tā, lai funkcija iestatītu datu dalībnieka vērtību, bet funkcija get iegūtu datu dalībnieka vērtību.

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ abstraktās nodarbības

C++ klase ir abstrakta, deklarējot vienu no tās funkcijām kā vitālu>tīru virtuālo funkciju. Tīri virtuāla funkcija tiek minēta, tās deklarācijā ievietojot = 0. Atvasinātajām klasēm ir jānodrošina to ieviešana.

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ faili un straumes

Jā nē Datu tips Apraksts
viens ārpus plūsmas Tas attēlo izvadfaila straumi, un to izmanto, lai izveidotu failus un ierakstītu informāciju failos.
divi ifstream Tas attēlo ievades faila straumi un tiek izmantots, lai nolasītu informāciju no failiem.
3 fstream Tas parasti attēlo failu straumi, un tam ir gan ofstream, gan ifstream iespēja.

Faila atvēršana

Fails ir jāatver, lai to varētu lasīt vai rakstīt. Lai atvērtu failu rakstīšanai, var izmantot fstream vai ofstream objektu. Objekts ifstream tiek izmantots, lai atvērtu failu tikai lasīšanas nolūkiem.

Jā nē Režīma karogs Apraksts
viens ios::ate Visa izvade failam, kas jāpievieno beigās.
divi ios::app Tas atver failu izvadei un pārvieto lasīšanas vai rakstīšanas vadīklu uz faila beigām.
3 ios::trunc Ja fails jau pastāv, saturs tiks saīsināts pirms faila atvēršanas.
4 ios::out Tas atver failu rakstīšanai.
5 ios::in Tas atver failu lasīšanai.

SINTAKSE

|_+_|

Faila aizvēršana

Kad C++ programma tiek pārtraukta, tā automātiski izskalo visas straumes, atbrīvo visu piešķirto atmiņu un aizver visus atvērtos failus.

SINTAKSE

|_+_|

Lasīšana no faila

Varat nolasīt informāciju no faila savā programmā, izmantojot straumes ekstrakcijas operatoru (>>). Vienīgā atšķirība ir tā, ka cin objekta vietā izmantojat objektu fstream vai ifstream.

LASĪT UN RAKSTI PIEMĒRU

|_+_|

IZEJA

|_+_|

Failu pozīcijas norādes

Gan ostream, gan istream nodrošina dalībnieku funkcijas faila pozīcijas rādītāja pārvietošanai. Šīs dalībnieku funkcijas ir seekp ostream un seek istream. Arguments seekp un seekg ir garš vesels skaitlis. Var minēt otru argumentu, lai norādītu meklēšanas virzienu.

C++ izņēmumu apstrāde

Izņēmumu apstrāde programmā C++ ir process, lai apstrādātu izpildlaika kļūdas. Jūs veicat izņēmumu apstrādi, lai normālu lietojumprogrammas plūsmu varētu uzturēt pat pēc izpildlaika kļūdām.

Programmā C++ izņēmums ir notikums vai objekts, kas tiek izmests izpildlaikā. Visi izņēmumi ir atvasināti no klases std::exception. Ja mēs neapstrādājam izņēmumu, tas izdrukā izņēmuma ziņojumu un pārtrauc programmas darbību.

Izņēmumi Apraksti
std::slikts_izņēmums To izmanto, lai apstrādātu neparedzētus izņēmumus.
std::logic_failure To var noteikt, nolasot kodu.
std::bad_typeid To parasti izmet pēc tipa.
std::runtime_error To nevar noteikt, nolasot kodu.
std::izņēmums Tas ir izņēmums un vecāku klase visiem standarta C++ izņēmumiem.
std::bad_cast To parasti izmet dynamic_cast.
std::bad_alloc To parasti izmet jauns.

C++ izņēmumu apstrādes pamatā ir trīs atslēgvārdi: mēģināt, noķert, un mest .

    pamēģini- mēģinājuma bloks identificē koda bloku, kuram tiks aktivizēts konkrēts izņēmums. Tam seko viens vai vairāki nozvejas bloki.noķert− Programma uztver izņēmumu, izmantojot izņēmumu apstrādātāju. Nozvejas atslēgvārds parāda izņēmuma uztveršanu.mest− Programma izdara izņēmumu, kad parādās problēma. Tas tiek darīts, izmantojot metienu atslēgvārdu.

PIEMĒRS

|_+_|

C++ dinamiskā atmiņa

Atmiņa ir sadalīta divās daļās -

    Kaudze− Visi funkcijā deklarētie mainīgie aizņem atmiņu no steka.Kaudze− Šī ir programmas neizmantotā atmiņa, un to izmanto, lai dinamiski piešķirtu atmiņu, kad programma darbojas.

Programmētāji var dinamiski piešķirt krātuves vietu, kamēr programma darbojas. Tomēr programmētāji nevar izveidot jaunus mainīgo nosaukumus, un šī iemesla dēļ dinamiskai piešķiršanai ir nepieciešami divi kritēriji:

  • Dinamiskas vietas izveide atmiņā
  • Tā adreses saglabāšana rādītājā

Atmiņas atdalīšana ir daļa no šīs koncepcijas, kur tiek attīrīta vieta citai datu glabāšanai. Lai atceltu dinamiskās atmiņas piešķiršanu, varat izmantot dzēšanas operatoru. Tātad dinamiskā atmiņas piešķiršana attiecas uz atmiņas pārvaldību dinamiskai atmiņas piešķiršanai manuāli.

jaunu un dzēst operatorus

Šeit datu tips var būt jebkurš iebūvēts datu tips, kas ietver masīvu, vai arī lietotāja definētiem datu tipiem ir klase vai struktūra. Sāksim ar iebūvētajiem datu veidiem

SINTAKSE

|_+_|

Ja jūtat mainīgo, kas nav dinamiski piešķirts un vairs nav vajadzīgs, varat atbrīvot atmiņu bezmaksas veikalā, izmantojot 'dzēst' operators.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

Masīvu dinamiskā atmiņas piešķiršana

Ja jūs kā programmētājs; vēlaties piešķirt atmiņu rakstzīmju masīvam, izmantojot to pašu sintaksi, kuru varat izdarīt.

PIEMĒRS

|_+_|

Nosaukumvietas piedāvā grupēt nosauktas entītijas, kurām ir globālā mērogā šaurākās jomās, piešķirot tām nosaukumvietas darbības joma . Tas arī ļauj organizēt programmu elementus dažādos loģiskos apmēros, kas apzīmēti ar nosaukumiem. Nosaukumvieta ir līdzeklis, kas atrodas C++ un nav pieejams C. Ir atļauti vairāki nosaukumvietas bloki ar vienādu nosaukumu. Visas deklarācijas blokos tiek deklarētas nosauktajā tvērumā.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

IZEJA

|_+_|

Nepārtrauktas nosaukumvietas

Nosaukumtelpa ir definēta vairākās daļās, un nosaukumvietu veido tās definēto daļu summa. Atsevišķās nosaukumvietas daļas ir sadalītas vairākos failos.

SINTAKSE

|_+_|

Ligzdotas nosaukumvietas

Šeit jūs varat definēt vienu nosaukumvietu citā nosaukumvietā

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

C++ veidnes

Veidne ir C++ funkcija, kas piedāvā rakstīt vispārīgas programmas. Citiem vārdiem sakot, varat izveidot vienu funkciju vai klasi, lai strādātu ar dažādiem datu tipiem, izmantojot veidnes. Veidnes tiek izmantotas plašākā kodu bāzē, lai nodrošinātu koda elastību un programmu atkārtotu izmantošanu.

Šie jēdzieni tiek izmantoti divos veidos:

  • Funkciju veidnes
  • Klases veidnes

Funkciju veidnes

Funkciju veidne darbojas tāpat kā parasta funkcija, ar vienu būtisku atšķirību.

Viena funkcijas veidne var darboties ar dažādiem datu tipiem, bet viena parasta funkcija var darboties ar vienu datu tipu kopu.

Parasti, ja vēlaties veikt identiskas darbības ar vairāku veidu datiem, varat izmantot funkciju pārslodzi, lai izveidotu funkcijas ar funkciju deklarāciju.

Lai gan labāka pieeja būtu izmantot funkciju veidnes, jo jūs varat veikt vienu un to pašu uzdevumu, rakstot mazāk un uzturējamu kodu.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Klases veidnes

Tāpat kā funkciju veidnes, varat izveidot klases veidnes klases operācijām. Parasti jums ir jāizveido cita klase katram datu tipam VAI jāizveido citi dalībnieku mainīgie un funkcijas vienā klasē.

Tas nevajadzīgi pārslogos jūsu kodu bāzi un to būs grūti uzturēt, jo vienas klases/funkcijas maiņa ir jāveic visās klasēs/funkcijās. Lai gan klašu veidnes ļauj viegli atkārtoti izmantot vienu un to pašu kodu visiem datu veidiem.

PIEMĒRS

|_+_|

IZEJA

|_+_|

C++ priekšprocesori

Priekšapstrādātāja direktīvas ir rindas, kas iekļautas programmu kodā, pirms kurām ir jaucējzīme (#). Šīs rindas nav ieprogrammēti priekšraksti, bet gan priekšapstrādātāja direktīvas. Priekšapstrādātājs pārbauda kodu pirms koda kompilācijas sākuma un atrisina visas direktīvas, pirms parastie paziņojumi ģenerē kodu.

Priekšapstrādātāja direktīvas sniedzas vienā koda rindā. Tiklīdz tiek atrasta jaunrindas rakstzīme, priekšapstrādātāja direktīva tiek beigta.

Ir 4 galvenie priekšapstrādātāju direktīvu veidi:

  • makro
  • Failu iekļaušana
  • Nosacītā kompilācija
  • Citas direktīvas

makro

Makro ir koda daļa, kurai ir dots kāds nosaukums. Ikreiz, kad kompilators saskaras ar šo nosaukumu, tas aizstāj nosaukumu ar faktisko koda daļu. Makro definēšanai tiek izmantota direktīva #define.

PIEMĒRS

|_+_|

IZEJA

|_+_|

Iepriekš definēti C++ makro

    __LINE__

Tas satur programmas rindas numuru, kad programma tiek kompilēta.

    __FILE__

Tas satur programmas pašreizējo faila nosaukumu, kad tā tiek kompilēta.

    __DATUMS__

Tajā ir virkne, kas ir avota faila tulkošanas datums objekta kodā.

    __LAIKS__

Tajā ir virkne stunda:minūte: sekunde, kas ir laiks, kurā programma tika kompilēta.

Failu iekļaušana

Šī priekšprocesora direktīva liek kompilatoram programmā iekļaut failu. Ir divu veidu faili, kurus lietotājs saglabā programmā:

    Galvenes fails vai standarta faili: Šajos failos ir ietvertas iepriekš definētu funkciju definīcijas, piemēram, printf(), scanf() utt. Šie faili ir jāiekļauj darbam ar šīm funkcijām. Atsevišķos galvenes failos ir deklarēta cita funkcija.Lietotāja definēti faili: kad programma kļūst milzīga, ir laba prakse to sadalīt mazākos failos un iekļaut, kad vien tas ir nepieciešams. Šāda veida faili ir lietotāja definēti faili.

Nosacītā kompilācija

Tas palīdz apkopot noteiktu programmas daļu vai izlaist kādas noteiktas programmas daļas apkopošanu, pamatojoties uz dažiem nosacījumiem.

SINTAKSE

|_+_|

Citas direktīvas

Papildus iepriekš minētajām direktīvām šeit ir vēl divas direktīvas, kuras netiek plaši izmantotas. Šie ir:

    #undef direktīva: #undef direktīva tiek izmantota, lai atceltu esoša makro definīciju.#pragma direktīva: tā ir īpašam nolūkam paredzēta direktīva, un to izmanto, lai ieslēgtu vai izslēgtu dažas funkcijas.

C++ signālu apstrāde

Signāli ir pārtraukumi, ko operētājsistēma nodrošina procesam, kas priekšlaicīgi pārtrauks programmas darbību. Nospiežot Ctrl+C uz UNIX, LINUX , Mac OS X vai Windows datorā, varat izveidot pārtraukumus.

Ir signāli, kurus programmatūra nevar noteikt, taču ir signālu saraksts, kurus varat uztvert programmā un veikt pieņemamas uz signālu balstītas darbības. C++ galvenes fails apraksta šos signālus.

Jā nē Signāls Apraksts
viens SIGFPE Kļūdaina aritmētiska darbība, piemēram, nulles pārtraukums vai pārpildes darbība.
divi SIGABRT Neparasta programmas pārtraukšana, piemēram, aicinājums pārtraukt.
3 SIGINT Interaktīvā fokusa signāla saņemšana
4 RONIS Nelikumīgas instrukcijas atklāšana.
5 SIGTERM Iesniedza programmai pārtraukšanas pieprasījumu.
6 SIGSEGV Nederīga diska piekļuve.

Signāla () funkcija

C++ signālu apstrādes bibliotēkā ir iekļauta signāla funkcija, lai notvertu neparedzamus notikumus.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

IZEJA

|_+_|

Paaugstināšanas () funkcija

Izmantojot funkciju raise(), kas kā argumentu izmanto veselu signāla skaitli, varat radīt signālus.

SINTAKSE

|_+_|

PIEMĒRS

|_+_|

IZEJA

|_+_|

Vairāku pavedienu izveide ir specializēts vairākuzdevumu veikšanas veids, un funkcija, kas ļauj jūsu iekārtai vienlaikus palaist divas vai vairākas programmas, ir daudzuzdevumu funkcija. Kopumā ir divu veidu daudzuzdevumu veikšana: uz procesu balstīta un uz pavedieniem balstīta. Programmu paralēla izpilde tiek veikta, izmantojot uz procesu balstītu daudzuzdevumu izpildi. Daudzuzdevumu veikšana, kuras pamatā ir pavedieni, ir saistīta ar vienas un tās pašas programmas daļu paralēlu izpildi. Ir divi vai trīs daudzpavedienu programmas komponenti, kas darbosies vienlaicīgi.

SINTAKSE

|_+_|
JĀ NĒ Parametrs Apraksts
viens dusmīgs Viens paziņojums, ko var pārsūtīt uz rutīnas sākumu. Tas ir jāpārnes kā rādītājs, kas ir tukšs, salīdzinot. NULL var izmantot, ja nav argumentu, ko pārvietot.
divi pavediens Necaurspīdīgs, īpašs identifikators pašreizējam pavedienam, ko atgriež apakšprogramma.
3 attr Neredzams objekta atribūts, ko var izmantot pavedienu atribūtu iestatīšanai. Varat definēt objektu ar pavediena īpašībām vai NULL ar noklusējuma vērtībām.
4 sākuma_rutīna Tiklīdz izveidota C++ rutīna, pavediens tiks izpildīts.

Pavedieni tiek pārtraukti

Mēs izmantojam šādu rutīnu, lai pārtrauktu POSIX pavedienu:

|_+_|

Šeit pthread exit izmanto, lai tieši izietu no pavediena. Parasti, kad pavediens ir pabeidzis savu darbu un vairs nav nepieciešams darbībai, pthread exit() rutīna tiek nosaukta.

Ja main() beidzas un iziet ar pthread exit() pirms tā izveidotajiem pavedieniem, citi pavedieni var sākt darboties. Pretējā gadījumā pēc main() beigām tie tiek nekavējoties pārtraukti

Vītņu ienākšana un atdalīšana

Tiek ievērotas divas darbības, ko varam izmantot, lai ievadītu vai noņemtu pavedienus.

|_+_|

Apakšprogramma pthread join() bloķē izsaucošo pavedienu, līdz tiek pārtraukts pavediens 'threadid'. Viens no tā atribūtiem nosaka, vai tas ir savienojams vai atdalāms, veidojot pavedienu. To var savienot tikai ar pavedieniem, kas ir ģenerēti kā savienojami. To nekad nevar savienot, ja pavediens ir izveidots kā atdalīts.

C++ tīmekļa programmēšana

Un kas ir CGI?

Vadlīniju kolekcija, kurā aprakstīts, kā informācija tiek kopīgota starp tīmekļa serveri un pielāgotu skriptu, ir tipiskā vārtejas saskarne jeb CGI. Ārējām vārtejas sistēmām vispārīgais vārtejas interfeiss jeb CGI ir standarts saskarnei ar informācijas serveriem, piemēram, HTTP serveriem. CGI/1.1 ir jaunākā versija, un CGI/1.2 ir izstrādes stadijā.

Pārlūkošana internetā

Apskatīsim, kas notiek, kad nospiežam hipersaiti, lai pārlūkotu noteiktu tīmekļa lapu vai URL, lai saprastu CGI jēdzienu. Jūsu pārlūkprogramma sazinās ar HTTP tīmekļa serveri un pieprasa URL, t.i., faila nosaukumu pēc faila nosaukuma. Tīmekļa serveris parsē URL un meklē faila nosaukumu. Ja pieprasītais fails tiek atrasts, tīmekļa serveris to pārsūtīs atpakaļ uz pārlūkprogrammu, pretējā gadījumā tas nosūtīs kļūdas ziņojumu, kurā teikts, ka esat pieprasījis nederīgu failu.

Populārā vārtejas saskarne (CGI) ir pamata protokols, kas ļauj lietojumprogrammām sazināties ar tīmekļa serveriem un klientiem. Šīs CGI programmas ir iespējams rakstīt Python, PERL, Shell, C vai C++ utt.

PIEMĒRS

|_+_|

Tīmekļa servera konfigurācija

Pirms turpināt CGI programmēšanu, pārliecinieties, vai tīmekļa serveris pieņem CGI, un tas ir paredzēts CGI programmām. Daudzas CGI programmas, kuras palaiž HTTP serveris, atrodas iepriekš konfigurētā direktorijā. Šo direktoriju sauc par CGI direktoriju, un tā nosaukums ir /var/www/cgi-bin. CGI failiem pēc vienošanās būs paplašinājumi .cgi, lai gan tie ir izpildāmi ar C++.

HTTP galvenes

    Set-Cookie: virkne

Konfigurējiet sīkfailu, kas iet caur virkni.

    Pēdējās izmaiņas: datums

Resursa pēdējās atjaunināšanas datums.

    Satura garums: N

Atgriezto datu garums baitos. Lai ziņotu par aptuveno faila ielādes laiku, pārlūkprogramma izmanto šo vērtību.

    Satura veids:

MIME virkne, kas norāda virknes formātu

    Atrašanās vieta: URL

URL, kas jāatgriež, nevis pieprasītais URL. Šis fails tiks izmantots, lai novirzītu pieprasījumu uz citu failu.

    Derīguma termiņš: datums

Diena, kad dati kļuva nederīgi. Pārlūkprogrammai tas ir jāizmanto, lai izlemtu, vai vietne ir jāatsvaidzina.

Vides mainīgie

    SATURA VEIDS: satura datu veids, kas tiek izmantots, kad klients nosūta pievienoto saturu serverim. Piemēram, failu augšupielādei utt.SATURA GARUMS: anketas informācijas ilgums, ko var iegūt tikai POST pieprasījumiem.HTTP-SĪKDEKTI: atgriež sīkfailus, kas iestatīti atslēgas un vērtības pāra veidā.AĢENTS HTTP LIETOTĀJS: Pieprasījuma galvenes lauks User-Agent sniedz informāciju par lietotāja aģentu, kas ierosināja pieprasījumu. Tas ir pārlūkprogrammas nosaukums internetā.CEĻA INFORMĀCIJA: virziens uz CGI skripta failu.JAUTĀJUMS STRING: URL kodēta informācija, kas tiek iesniegta ar pieprasījumu no GET procesa.REMOTE ADDRR: attālā saimniekdatora IP adrese, kas ļauj iesniegt apelāciju. Tas var būt noderīgi reģistrēšanai vai autentifikācijai.TĀLĀS SAIMNIECĪBAS: pilnībā kvalificēts meklējošā saimniekdatora vārds. Ja šī informācija nav pieejama, ir iespējams izmantot REMOTE ADDR, lai iegūtu IS adresi.PIEPRASĪJUMA METODE: iesnieguma sagatavošanai izmantotā metodoloģija. GET un POST ir vispopulārākās pieejas.SCRIPT FILENAME: pilnīgs ceļš uz CGI skriptuSERVER_NAME: servera domēna nosaukums vai IP adrese.SERVER_PROGRAMMATŪRA: programmas nosaukums un versija, kurā darbojas serveris.

GET un POST metodes

Mēģinot pārsūtīt jebkādu informāciju no pārlūkprogrammas uz tīmekļa serveri un galu galā uz CGI lietojumprogrammu, jums ir jāsaskaras ar noteiktiem scenārijiem. Lai pārsūtītu šo informāciju uz tīmekļa serveri, pārlūkprogramma visbiežāk izmanto divas pieejas. Šīs pieejas ir GET metode un POST metode.

URL PIEMĒRS IEGŪŠANAS metode

|_+_|

Sīkdatņu izmantošana

HTTP protokols ir bezvalsts protokols. Taču komerciālai vietnei ir svarīgi saglabāt sesiju datus starp dažādām vietnēm. Piemēram, viena lietotāja reģistrācija beidzas pēc vairāku lapu aizpildīšanas. Bet kā saglabāt sesijas informāciju lietotājam visās tīmekļa vietnēs. Visuzticamākais veids, kā atcerēties un pārraudzīt intereses, pārdošanas apjomus, komisijas maksas un citu informāciju, kas nepieciešama, lai uzlabotu apmeklētāju pieredzi vai vietnes statistiku, ir noteiktos gadījumos izmantot sīkfailus.

Sīkfaila veidā jūsu serveris pārsūta dažus datus uz apmeklētāja logu. Sīkdatne tiks apstiprināta pārlūkprogrammā. Ja tā notiek, tas tiek saglabāts apmeklētāja cietajā diskā kā vienkārša teksta arhīvs. Tagad sīkfails ir gatavs atkopšanai, kad lietotājs nokļūst citā jūsu tīmekļa lapā. Pēc atkopšanas serveris zina/atceras saglabāto.

    Beidzas-Tas nozīmē sīkdatnes derīguma termiņu. Ja šis lauks ir tukšs, apmeklētājam aizverot pārlūkprogrammu, sīkfaila derīguma termiņš beigsies.Domēns- Tiek parādīts vietnes domēna nosaukums.Ceļš− Tas norāda ceļu uz sīkfailu iestatīšanas direktoriju vai tīmekļa lapu. Ja mēģināt paņemt sīkfailu no kāda direktorija vai cilnes, tas var būt nulle.Droši− Ja šajā laukā ir ietverts vārds drošs, sīkfailu var atgūt tikai drošs serveris. Ja šis lauks ir tukšs, citi ierobežojumi neattiecas.Vārds = vērtība− Atslēgu un vērtību pāru veidā sīkfaili tiek iestatīti un izgūti.

Faila augšupielādes piemērs

|_+_|

Secinājums

Ar to mēs nonākam pie šīs C++ apmācības beigām. Cerams, ka tas jums palīdzēja izprast C++ programmēšanas pamatus.