Acasă Finanțe personale 8 C ++ Not-So-Beginner Caracteristici - manechine

8 C ++ Not-So-Beginner Caracteristici - manechine

Cuprins:

Video: C++ Episodul 8 : Functii 2024

Video: C++ Episodul 8 : Functii 2024
Anonim

Limba C ++ conține atâtea caracteristici pe care începătorii programatori nu le pot înțelege pe fiecare. Din fericire, nu este nevoie să cunoașteți toate caracteristicile limbii pentru a scrie programe mari, în lumea reală. Următoarele sunt cele zece caracteristici pe care ar trebui să le priviți înainte, doar în cazul în care le vedeți în programele altor persoane.

Comanda C ++

Această comandă merge tot înapoi în C, progenitorul C ++. În principiu, utilizarea acestei comenzi este ușoară. Puteți plasa eticheta; oriunde vrei. Când C ++ se întâlnește cu această comandă, controlul trece imediat pe etichetă, așa cum se arată în acest fragment de cod:

pentru (;;) {if (expresie condiționată) {goto outahere;} // … ce vrei …} outahere: // … programul continuă aici …

Trebuie să introduceți o mulțime de modalități de a înșivă. În orice caz, nu a durat mult înainte ca programatorii să fi observat că cele două utilizări cele mai uzuale ale geto-ului au fost să părăsească buclele și să meargă la următorul caz într-o buclă. Comitetul de Standarde C a introdus o pauză și a continuat și a eliminat aproape complet necesitatea comenzii geto.

Operatorul ternar C ++

Operatorul ternar este un operator unic pentru C și C ++. Funcționează după cum urmează: int n = (condiționată)? expresia1: expresia2;

? Se operatorul evaluează mai întâi condițiile condiționate. Dacă condiția este adevărată, atunci valoarea expresiei este egală cu valoarea expresiei1; altfel, este egal cu valoarea expresiei2.

De exemplu, puteți implementa o funcție maximă () după cum urmează:

int max (int n1, int n2) {retur (n1> n2)? n1: n2;}
Operatorul ternar poate fi aplicat la orice tip de numeric dar nu poate fi supraîncărcat. Operatorul ternar este cu adevărat o expresie - nu o declarație de control ca o if.

Tipurile enumerate în C ++

Ideea simplă este aceea că puteți defini constantele și le permiteți C ++ să le atribuie valori, așa cum se arată aici:

culori enum {BLACK, BLUE, GREEN, YELLOW, RED}; Culori myColor = NEGRU;

Problema cu tipurile enumerate constă în implementarea: Mai degrabă decât să creeze un tip adevărat, C ++ folosește numere întregi. În acest caz, BLACK este atribuită valoarea 0, BLUE este atribuită 1, GREEN2, și așa mai departe.

Culori clasa enum {BLACK, BLUE, GREEN, YELLOW, RED}; Culori myColor = Culori:: NEGRU;

În această versiune, Culori este un tip nou.Fiecare dintre constante, BLACK, BLUE și așa mai departe, sunt membri de tip Colors. Puteți încă să aruncați un obiect de clasă Colours într-un int, dar o distribuție implicită nu este permisă.

C ++ namespaces

Este posibil să se acorde entități diferite în două biblioteci diferite cu același nume. De exemplu, funcția grade () din cadrul bibliotecii Student ar atribui probabil o notă, în timp ce funcția grade () din cadrul bibliotecii Civil Engineering ar putea seta panta pe partea dealului. Pentru a evita această problemă, C ++ permite programatorului să își plaseze codul într-un spațiu de nume separat. Astfel, gradul din spațiul de nume Student este diferit de gradul din Civil Engineering.

Spațiul de nume este deasupra și dincolo de numele clasei. Funcția membru grade () a clasei BullDozer din spațiul de nume CivilEngineering are numele extins CivilEngineering:: BullDozer:: grade ().

Toate obiectele și funcțiile bibliotecii se află în spațiul namespace std. Instrucțiunea de la începutul șablonului de program folosind namespace std; spune că dacă nu vedeți obiectul specificat în spațiul de nume implicit, mergeți în secțiunea std.

Funcții virtuale pure în C ++

Nu trebuie să definiți o funcție declarată virtuală. O astfel de funcție nedefinită este cunoscută sub numele de

funcția virtuală pur element

. În acel moment, însă, lucrurile se complică. De exemplu, o clasă cu una sau mai multe funcții virtuale pure este considerată a fi abstractă și nu poate fi utilizată pentru a crea un obiect. Rezolvați acest subiect după ce vă simțiți confortabil cu funcțiile virtuale și legarea târzie. Clasa de șir C ++ Cele mai multe limbi includ o clasă de șir ca fiind un tip intrinsec pentru manipularea cu ușurință a șirurilor de caractere. În teorie, clasa string ar trebui să facă același lucru pentru C ++. În practică, totuși, nu este așa de simplu. Deoarece șirul nu este un tip intrinsec, mesajele de eroare generate de compilator atunci când se întâmplă ceva nu sunt mai asemănătoare cu cele asociate cu clasele definite de utilizator. Pentru începători, aceste mesaje pot fi foarte greu de interpretat.

șirul nu este nici măcar o clasă. Este o instanță a unei clase de șabloane. Mesajele de eroare pot fi uluitoare.

Moștenire multiplă în C ++

O clasă poate extinde de fapt mai mult de o clasă de bază. Acest lucru pare simplu, dar poate fi destul de complicat atunci când cele două clase de bază conțin funcții membre cu același nume. Chiar mai rău este atunci când ambele clase de bază sunt ele însele subclase ale unei anumite clase comune.

De fapt, atât de multe probleme apar ca C ++ este singurul limbaj asemănător C care suportă mai multe moșteniri. Java și C #, ambele limbi derivate din C ++, au decis să scadă suportul pentru moștenire multiplă.

șabloanele C ++ și biblioteca standard de șabloane

Producătorii C ++ au observat că funcțiile similare sunt următoarele:

int max (int n1, int n2) {if (n1> n2) {return n1; (n1> n2) {return n1;} retur n2;} max max (n1 n2; n1; n2; returneaza n2;}

"N-ar fi rau", spune unuia altui ", daca ai putea sa inlocui tipul cu un tip pseudo-tip T pe care l-ai putea defini la momentul compilarii?"Înainte de a ști, șabloanele presto devin parte din C ++:

șablon T max (Tt1, Tt2) {if (t1> t2) {retur t1;} întoarcere t2;}

creați un maxim (int, int) prin înlocuirea lui T cu int și compilarea rezultatului, creând un maxim (dublu, dublu) prin înlocuirea T cu dublu și așa mai departe. Comitetul pentru Standarde a lansat chiar o întreagă bibliotecă de clase, cunoscută sub numele de Biblioteca Standard Template (STL pe scurt), bazată pe clase de șabloane.

Cu toate acestea, pentru un începător, subiectul claselor de șabloane începe să devină foarte complicat din punct de vedere sintactic. În plus, erorile pe care compilatorul le generează atunci când obțineți o instanțiere a șabloanelor greșite sunt uimitoare pentru un expert, fără să-i deranjeze pe un începător. Acesta este cu siguranță un subiect care trebuie să aștepte până când vă simțiți confortabil cu limba de bază.
8 C ++ Not-So-Beginner Caracteristici - manechine

Alegerea editorilor

Social Media Design: Twitter Opțiuni imagine - dummy

Social Media Design: Twitter Opțiuni imagine - dummy

Jonglați constrângerile legate de spațiu și modul cel mai bun de a poziționa cele trei imagini separate pe care vi se permite să le utilizați în profilul dvs. Twitter.

Social Media Design: Inspirând exemplele de afaceri pe Facebook - manechine

Social Media Design: Inspirând exemplele de afaceri pe Facebook - manechine

ÎNainte de scufundări în elementele de bază ale proiectării o pagină solidă Facebook, aruncați o privire asupra unor branduri care profită din plin de Facebook cu pagini proprii. Persoanele fizice și organizațiile de la bloggeri la proprietarii de magazine Etsy de la domiciliu la branduri internaționale folosesc Facebook pentru a se conecta cu clienții și fanii existenți, precum și cu potențialul lor ...

Social Media Optimization: Publicarea Tweets automat la profilul dvs. Facebook - dummies

Social Media Optimization: Publicarea Tweets automat la profilul dvs. Facebook - dummies

Lucrurile noi pe care să le postați pe Facebook pot fi o adevărată corvoadă. Din fericire, există un truc pe care îl puteți optimiza pe acest site media social. Dacă puteți atinge postarea încrucișată a conținutului între servicii, vă puteți salva ceva timp. Twitter vă oferă posibilitatea de a vă conecta profilul cu alte servicii. Există, ...

Alegerea editorilor

Cum se verifică performanța sistemului cu AWS - dummies

Cum se verifică performanța sistemului cu AWS - dummies

AWS (Amazon Web Services) metode pentru monitorizarea serviciilor specifice AWS. Cu toate acestea, este posibil să aveți probleme de performanță a sistemului sau probleme de aplicare non-AWS care trebuie abordate, ceea ce înseamnă că aveți instrumente care pot funcționa în afara AWS. Pachetul de grupuri de instrumente de performanță conține un număr de instrumente specifice pentru realizarea acestei sarcini ...

Cum să alegeți serviciile AWS de care aveți nevoie - dummies

Cum să alegeți serviciile AWS de care aveți nevoie - dummies

Amintiți-vă că aveți doar 12 luni de libertate proces în care să se ia decizii privind serviciile AWS (Servicii Amazon Web) pe care să le utilizați în afacerea dvs. Douăsprezece luni pot părea mult timp, dar veți descoperi că se evaporă înaintea ochilor dvs. în timp ce încercați să vă jonglați responsabilitățile zilnice, întâlnirile ...

Probleme de securitate aWS - dummy

Probleme de securitate aWS - dummy

Pentru a utiliza AWS (Amazon Web Services) cale. Administratorii și profesioniștii în domeniul securității se pot răzbuna rapid, încercând să păstreze aceste computere interconectate în siguranță, dar aceasta face parte din descrierea postului. Trebuie să urmați cele mai bune practici în securizarea sistemelor informatice, a datelor pe care le conțin, ...

Alegerea editorilor

Cum se asamblează o Circuit de organe color - dummies

Cum se asamblează o Circuit de organe color - dummies

După ce ați strâns toate materialele de care aveți nevoie construiți un organ de culoare, sunteți gata să asamblați proiectul. Vedeți ce aveți nevoie pentru a construi un circuit de organe color. Veți avea nevoie de următoarele instrumente: Sârma de lipit, de preferință cu setări de 20 și 40 W Solder Utilizați lipire mai groasă pentru firele de tensiune și subțire ...

Construirea unui Circuit Dead-Bug Style - dummies

Construirea unui Circuit Dead-Bug Style - dummies

) Sunt montate cu capul în jos pe placa de circuit imprimat (PC), majoritatea picioarelor lipindu-se în aer! Arata ca multe. . . morți bug-uri! Un alt nume pentru acest tip de construcție este "circuitele de aer", deoarece componentele sunt atașate direct la ...

Aplicarea RFID în lumea reală - dummies

Aplicarea RFID în lumea reală - dummies

Capacitatea de a urmări și de a urmări, de a urmări și de a găsi, peek sunt toate îmbunătățite prin utilizarea RFID. Unii avocați de confidențialitate vă faceți griji că aparatele vor atașa în mod magic etichetele RFID la îmbrăcăminte sau pantofi pe măsură ce vă plimbați prin magazin sau în jurul unui birou, dar acest lucru este foarte puțin probabil. Limitele ...