You are on page 1of 9

L1 LIMBAJUL DE PROGRAMARE C++ I OOP. CARACTERISTICI C++ este un limbaj de programare orientat pe obiecte.

. Acest limbaj constituie o versiune mbogit a limbajului de programare C (o extensie sau un superset al lui C). Pn n !"# el se mai numea $C cu clase%. & preci'm cteva din elementele speci(ice lui C++. )le constau n extensii ale lui C cu privire la*

a) limbaj: . pentru o parcurgere (acil a codului surs+ se (olose,te un nou mod de pre'entare a comentariilor.. se utili'ea' tipurile re(erin+ care simpli(ic+ din punct de vedere sintactic+ transmiterea parametrilor prin re(erin#. se (olose,te suprancrcarea operatorilor+ cu scopul de a permite+ n C+++ s acione'e asupra tipurilor abstracte de date de(inite de utili'ator/. se (olose,te suprancrcarea (unciilor+ care permite utili'area mai multor (uncii cu acela,i identi(icator+ dar cu aciuni di(erite0. se utili'ea' (unciile cu parametri implicii. b) o tratare la nivel superior a tipurilor de date definite de utilizator ce const n: . (olosirea prototipurilor (unciilor+ care permit o bun veri(icare a tipurilor parametrilor+ la apelul lor.. (olosirea operatorilor de alocare dinamic a memoriei+ care dau o preci'ie mai mare+ n aceast operaie#. veri(icarea trans(erului de parametri+ printr1un control al tipurilor+ la editarea de legturi/. o nou inter(a intrare2ie,ire (324)+ care d o mai mare (lexibilitate+ a operaiilor de citire 2 scriere0. existena unor rutine care permit conversia tipurilor de(inite de utili'ator. c) . .. #. /. programarea orientat pe obiect (OOP) reflectat prin: gruparea de date ,i operaii ntr1un acela,i tip de date numit clas; un acces selectiv la elementele interne ale unei clasee!tili"a ea sau #$%te&i ea unor clase prin clase 'e ivateutili'area (!&c)iil$ vi t!ale* care dau un mijloc mai puternic de apelare al (unciilor+ n timpul execuiei programului ,i nu n timpul compilrii lui0. utili'area (!&c)iil$ ( ie&'* care permit accesul din exteriorul unei clase+ la elemente protejate din acea clas5. utili'area unor (uncii speciale ntr1o clas numite c$&st !ct$ i respectiv 'est !ct$ i+ necesare pentru a iniiali'a+ respectiv a distruge+ obiecte ale acelei clase. 6ecesitatea introducerii lui C++ se datorea' ,i cre,terii complexitii programelor (trecnd de .0777 de linii de cod+ un control n C devine anevoios). 8e la apariie+ C++ a trecut printr1o serie de revi'uiri ( !"0+ !"!+ iar n !!/ se obine standardul A6&3 C++). C++ (iind un superset al lui C+ permite compilarea unor programe A6&3 C cu un compilator C+++ lund n considerare unele aspecte speci(ice.

) )vitarea utili'rii unor identi(icatori n A6&3 C care s (ie identici cu unele cuvinte c9eie din C++. :ntr1un program C se pot utili'a drept identi(icatori de variabile cuvinte c9eie ca* t+is* &e,* -!.lic+ dar nu n situaia n care compilarea surselor se (ace cu un compilator C++. .) D$#e&i!l 'e vi"i.ilitate al identi(icatorului unui tip e&!#e at declarat n cadrul unei st !ct! i n C coincide cu cel al identi(icatorului structurii respective. :n C++ el este vi'ibil doar n cadrul acestei structuri. 8e aceea este bine ca atribuirile s (ie nsoite de conversii de tip corespun'toare. Exemplu: struct alfa { enum cod {cif,lit,semn} } :ntr1un program C+ instruciunea* cod c!"semn este corect. :n C++ ea trebuie rescris sub (orma* alfa::cod c!"alfa::semn (asupra operatorului ;//; vom reveni). #) :n C este permis conversia implicit a -$i&te il$ 0e&e ici ($void%) n alte tipuri de pointeri+ pe cnd n C++ nu este permis o ast(el de conversie. :n C++ toate valorile 'ero sunt codi(icate prin 7+ iar n A6&3 C+ unde sunt re(erii pointeri+ este adesea utili'at constanta 6<==. 8e,i di(erena este pur stilistic+ ea este adoptat permanent. /) :n A6&3 C se $presupune% c orice (uncie nedeclarat are un prototip de (orma int id#functie($%) :n C+++ nu se poate apela o (uncie nedeclarat+ ,i se va semnala eroare la compilare. 0) 8eclaraia unei (uncii n care lista parametrilor lipse,te+ este di(erit interpretat n C++ (a de A6&3 C. 8e exemplu+ void func ( ) n C++ este interpretat sub (orma void func(void) cu o list vid de parametri. :n A6&3 C este interpretat sub (orma void func($) ceea ce nu indic lipsa de(initiv a parametrilor. 5) )xist di(erene ntre lungimile unor tipuri de date. Ast(el+ n A6&3 C+ sizeof(&c&) este acela,i cu sizeof(int) ("' oct) oricare ar (i caracterul A&C33+ >c>. Compilatorul C interpretea' constanta caracter >c> ca o constant ntreag. Prin urmare+ n A6&3 C+ sunt sinonime apeluri de (uncii de (orma* putc(ar(!)) putc(ar(&* n&) :n C+++ sizeof (&c&) este sinonim cu

sizeof (c(ar)("! oct) ?unciile+ n C+++ di(er ntre ele prin argumentele lor. :n ca'ul de (a un apel de (uncie solicita un i&t iar cellalt apel un c+a . @) 4 linie de comentariu n C++ ncepe cu 1221. Exemplu: ++ acesta este un comentariu Amne valabil ,i construcia din C +,comentariu ,+ <n programator trebuie s in cont de (aptul+ c pentru a (i portabil+ un program C++ trebuie s aib acela,i e(ect+ indi(erent de ma,ina (i'ic sau mediul de lucru care au (ost (olosite. <n program C++ portabil nu depinde de (actori ca* a) ordinea de evaluare a parametrilor (unciilorb) ordinea de evaluare a operan'ilor operatorilor binaric) numrul de po'iii binare $s9i(t%1abile la stnga sau la dreaptad) modul n care se e(ectuea' operaia de complementare $B% n (uncie de ma,ina utili'ate) preci'ia de repre'entare ,i ordinul de mrime al variabilelor de tip (l$at ,i '$!.le() ordinea biilor ntr1un octetg) restriciile cu privire la alinierea datelor n memorie9) setul de caractere utili'at (A&C33+)CC383C+D)i) valoarea iniial a variabilelor automatice rmase neiniiali'atej) ordinea n care se construiesc obiectele globale (de(inite n exteriorul oricrei (uncii) etc. ?unciile normale C+ adic cele care sunt compilate ,i depo'itate ntr1o $run1time librarE%+ se pot utili'a n programe C++ cu condiia ca ele s (ie totu,i declarate ca (uncii C. Fajoritatea di(erenelor de stil+ ntre programele redactate n C ,i cele n C+++ se regsesc n avantajul pe care l are C++ cu privire la capacitatea sa de orientare pe obiecte. 8e aceea este bine a gndi ,i programa n C++ (r a apela la C. Grebuie s avem n vedere caracteristicile speci(ice programrii n C++. &e ,tie c un st ea# 3(l!45 repre'int o colecie de octei care serve,te ca model abstract pentru dispo'itive de intrare2ie,ire ca* (i,ier pe disc+ tastatur+ ecran+ bu((er pentru memorie. Corland C++ include biblioteca iostream care tratea' operaiile de intrare2ie,ire prin intermediul unei clase de obiecte. Aeducerea duratei+ n trecerea de la stdio (C) la iostream (C+ +)+ se ba'ea' tocmai pe (aptul c biblioteca iostream conine obiecte prede(inite de tip stream (cin, cout, cerr) care au un rol similar din punct de vedere (uncional cu stdin, stdout, stderr din C. 4peraiile de intrare 2 ie,ire la nivel de consol+ speci(ice lui C+++ se ba'ea' pe aceste (luxuri prede(inite* a. cin H un (lux de intrare conectat la intrarea standard 1 tastat! a (analog cu st'i& din C)b%cout - un (lux de ie,ire conectat la ie,irea standard 1 #$&it$ !l (analog cu st'$!t din C)c%cerr1 un (lux de ie,ire care (urni'ea' o ie,ire (r a (olosi .!((e la dispo'itivul standard de eroare (analog cu stderr din C)d% clog- un (lux care (olose,te .!((e e la (el ca ci& ,i c$!t (analog cu ce ).

Cnd ,i ncepe execuia un program n C+++ se desc9id automat aceste patru stream1uri ncorporate. 3mplicit+ stream1urile standard sunt (olosite pentru a comunica cu consola. :n mediile

care admit redirecionarea 324 (84&+ <nix+ 4&2.+IindoJs)+stream1urile standard pot (i redirecionate spre alte ec9ipamente sau (i,iere. &tandardul A6&3 C++ mai de(ine,te urmtoarele patru stream1uri*,i&* ,$!t+,e ,i ,l$0. )le constituie versiuni ale stream1urilor standard pentru caractere mari ( ,i'e ca acte s). Acestea sunt de tipul ,c+a 6t ,i+ n general+ au mrimea de 5 bii. &unt (olosite pentru seturile lrgite de caractere necesare anumitor limbi. :n loc de a de(ini (uncii membre ale unei clase+ care s reali'e'e operaiile de intrare2ie,ire+ biblioteca i$st ea# are n vedere suprancrcarea operatoriilor $KK% ,i $LL%. Ace,ti operatori conlucrea' cu (luxurile ci& ,i c$!t. ec a& .!((e $-e at$ !l 77 c$!t este conectat la ec a&.!((e !l este asociat (luxului de ie,ire c$!te- e"e&ta e i&te & 3.i&a 5

$-e at$ !l 77 converte,te repre'entarea intern n caracteretastat! .!((e $-e at$ !l 88 e- e"e&ta e i&te & 3.i&a 5

ci& este conectat la tastat! ; .!((e !l este asociat (luxului de intrare ci&; $-e at$ !l 88 converte,te caracterele n repre'entarea binar intern. Ciblioteca C++ i$st ea# constituie o implementare orientat pe obiecte a unui (lux de octei de la o s! s la o 'esti&a)ie. :n aceast bibliotec se a(l (luxuri de intrare (clasa ist ea# similar+ din punct de vedere (uncional+ cu sca&( ,i (sca&( (din A6&3 C))+ (luxuri de ie,ire (clasa $st ea# similar+ din punct de vedere (uncional+ cu - i&t( ,i (- i&t( (din A6&3 C)) ,i (luxuri care pot trata att operaii de intrare ct ,i de ie,ire (clasa i$st ea#).

&tream1urile de intrare 2 ie,ire suprancarc operatorii binari de s9i(tare $LL% ()MGAACN3)+ adic preia de laD)+ $KK% (36&)AN3)+ adic pune laD). )i reali'ea' un trans(er al in(ormaiei cu (ormatare. 4peratorul $LL% este util pentru intrare (ci&)+ iar $KK%+ pentru ie,ire (c$!t). 4perandul stng+ la care se aplic un ast(el de operator+ repre'int un obiect de tipul 9ist ea#%+ respectiv 9$st ea#:* iar operandul drept poate (i de orice tip pentru care operatorul a (ost de(init. Cei doi operatori sunt prede(inii pentru tipurile de ba' ale limbajului (int+ c9ar+ (loat etc.) ,i se pot suprancrca pentru orice tip de date de(init de utili'ator. 8ac un ast(el de operator a (ost suprancrcat+ avnd operandul drept de tipul G (de(init de utili'ator)+ atunci el se va numi T;e4t act$ + respectiv T;i&se t$ . Exemplu: c(ar car cin..car cout//car Prin aceast secven se va citi un caracter $ ca % din stream1ul de intrare (tastatura)+ care va (i scris+ dup aceea+ n stream1ul de ie,ire (ecranul). Ambii operatori au proprietatea de asociativitate de la stnga la dreapta ,i returnea' o re(erin (nume alternativ pentru un obiect) la primul operand al lor+adic un 9ist ea# <:* respectiv un 9$st ea# <:. Ace,ti operatori se pot nlnui sau concatena (ve'i asociativitatea) (ormnd operaii multiple de tipul+ cin..v!..v'.$%..vn cout//v!//v'//%%//vn 6u se accept dect nlnuri cu operatori de acela,i (el.

Exemplu: 0include/iostream%(. void main (void){ int 1,2 float z cout//34ntroduceti un intreg +un real*n3 cin..1..z 2"15' cout//315z"3//(15z)//3162"3//(162)//3*n3 } Parante'ele sunt necesare avnd n vedere precedena operatorilor utili'ai. Gipurile datelor citite de la cin pot (i tipuri aritmetice ,i ,iruri de caractere. Gipurile datelor trans(erate ctre cout sunt acelea,i ca la citire. :n plus+ ele pot (i ,i pointeri de un tip oarecare+ cu excepia tipului c+a .

)xtragerea unei valori numerice nseamn* ignorarea tuturor caracterelor spaiu+ adic acele caractere pentru care (uncia de bibliotec iss-ace35* returnea' o valoare nenul (blancul+ >O t>+ >O v>+ >O n> etc.)1 un te4t+ dac primul caracter di(erit de caracterPspaiu este o ci(r+ un semn sau punctul 'ecimal (la (loat)1 e4t a0e ea t!t! $ ca acte el$ c$&sec!tive pn la ntlnirea unui caracter invalid pentru tipul de dat respectiv1 e(ectuarea+ la (inal+ a conversiei string1ului obinut la tipul de dat respectiv. 1 & anali'm urmtorul exemplu* 0include /iostream%(. main ( ) { int 7"8 cout//349:4;9<*n3 ++comentariu n =55 cout//34ntroduceti o valoare:3 cin..7 cout//7//3la cub este:3//7,7,7//3* n3 return ) } a) &e observ c este inclus (i,ierul antet i$st ea#.+* util n admiterea operaiilor de intrare 2 ie,ire n C++. Acest (i,ier conine de(iniiile claselor care implementea' obiectele (luxuri ,i permit (olosirea bu((erelor. )l joac un rol similar lui st'i$.+ din C. b) &e va reine (aptul c lista de parametri din main( ) este vid. :n C++ aceasta nseamn c (uncia nu are parametri. :n acest ca'+ n C+++ utili'area lui void devine super(lu. c) :n urmtoarele linii apare suprancrcat operatorul $KK%+ respectiv $LL%+ n sensul preci'at mai sus+ speci(ic lui C++. d) &e poate utili'a ,i - i&t(3 5 din C+ dar cu includerea lui st'i$.+. e) 4peratorii de deplasare+ atunci cnd nu sunt (olosii n operaiile de intrare 2 ie,ire+ vor indica operaiile de deplasare stnga 2 dreapta corespun'toare.

() :n linia de cod ci&88=nu este necesar Q n (aa lui R (detalii la stream1urile de(inite n C++). g) Pentru RS0+ prin penultima linie+ se va tipri valoarea .0. 9) Aeturnarea valorii 7 unitii apelante (de obicei sistemul de operare)+ indic o terminare normal a programului. Alt(el+ n ca' de eroare+ se va returna o valoare di(erit de 7. i) )xist dou posibiliti+ n C+++ n ceea ce prive,te tipul returnat de (uncia main ( )* 1 nu declarm nimic+ ceea ce nseamn c tipul returnat este void1 returnea' o valoare ntreag. 6u este obligatoriu ca o ast(el de (uncie s returne'e o valoare. j) <n ast(el de program nu apelea' la construcii din C+ ci utili'ea' numai construcii speci(ice lui C++. )xist o serie de (uncii care pot (i utili'ate n combinaie cu operatorii de intrare 2 ie,ire. I$st ea# posed+ dup cum am mai menionat+ o serie de rutine pentru acces la nivel de caracter. Fajoritatea acestora aparin clasei ist ea# ,i sunt asociate operaiilor de intrare (intrri ne(ormatate). )xist o metod+ mai des ntlnit+ (olosit pentru operaia de ie,ire+ -!t3 5+ care (ace parte din clasa $st ea#. 3ntrarea unui singur caracter se poate reali'a cu ajutorul (unciei 0et3 5 a clasei ist ea#. int get(void) &e extrage urmtorul caracter de la intrare ,i1l returnea'. 8ac este detectat s(r,itul intrrii+ se returnea' )4?. int pee7(void) &e returnea' urmtorul caracter de la intrare+ (r a1l extrage. 8ac este detectat s(r,itul intrrii+ se returnea' )4?. istream 6putbac7(c(ar c)&e ntoarce caracterul c la intrare ,i returnea' o re(erin. istream 6get(signed c(ar 6c) istream 6get(unsigned c(ar 6c) &e extrage caracterul urmtor de la intrare ,i returnea' intrarea ca re(erin. &e poate spune c (uncia 0et3 5 extrage un caracter din stream1ul curent ,i1l pstrea' n 'ona de memorie re(erit de parametrul (ormal c. Aceast (uncie nu trece peste caracterele albe. )a extrage din stream1ul curent caracterul+ indi(erent dac acesta este sau nu un caracter alb. istream 6get(signed c(ar ,s,int n, c(ar t"&*n&) istream 6get(unsigned c(ar ,s,int n, c(ar t"&*n&) &e extrag cel mult n caractere (un ,ir+ inclusiv TO7U) din stream1ul curent de la intrare ,i le depun n ,irul s. 8ac se detectea' terminatorul de ,ir t+ extragerea se opre,te (r a se reali'a extragerea ,i depunerea terminatorului n ,irul s. istream 6getline(signed c(ar ,s,int n, c(ar t"&*n&) istream 6getline(unsigned c(ar ,s,int n, c(ar t"&*n&) Aceea,i aciune ca ,i 0et3 5* cu deosebirea c terminatorul de ,ir este extras de la intrare+ dar nu este depus n ,ir. istream 6ignore(int n, int t"9O>) )xtrage ,i ignor cel mult n caractere de la intrare+ inclusiv terminatorul t. int gcount(void) Aeturnea' numrul de caractere extrase la ultima operaie de extragere. )xtragerea binar a datelor din stream1ul curent se reali'ea' (olosind (uncia ea'3 5. istream 6read(unsigned c(ar,s, int n) istream 6read(signed c(ar,s, int n)

&e extrag n octei din stream1ul curent ,i i trans(er n 'ona de memorie re(erit de s. ostream 6put(c(ar c) &e introduce caracterul c la ie,irea $st ea# ,i returnea' o re(erin. 91emplu: ++ apeluri n = ++apeluri n =55 c" fgets(stdin) c"cin%get( ) fgets(buff,?),stdin) cin%getline(buff,?)) ungetc(c,stdin) cin%putbac7(c ) fputc(c,stdout) cout%put(c ) Anali'ai ast(el de apeluri ,i preci'ai e(ectul lor. )xist posibilitatea concatenrii unor operaii de intrare2ie,ire. & presupunem c dorim a a(i,a caracterele*>C>+ >C>+ >8>. 4 variant const n a (olosi n mod individual metoda -!t3 5* cout%put(&@&) cout%put(&=&) cout%put(&A&) 4 alt variant+ mai compact+ ar (i urmtoarea* cout%put(&@&)%put(&=&)%put(&A&) sau nc ((cout%put(&@&))%put(&=&))%put(&A&) (se are n vedere asociativitatea la stnga a operatorului ;.;)% & se (ac o analogie cu - i&t(3 5. Atributele de orientare pe obiecte pot (i potenial aplicate tuturor sarcinilor de programare. C++ se poate utili'a ,i pentru obiecte ca* editoare+ ba'e de date+ (i,iere de personal+ programe de comunicare. Cu ajutorul lui C++ s1au creat multe sisteme de nalt per(orman. P $0 a#a ea $ ie&tat -e $.iect 3OOP5 constituie o nou cale de abordare a programrii. &e poate spune+ c datorit cre,terii continue a complexitii programelor+ 44P vine s $salve'e% programarea structurat care devine aproape ine(icient n ast(el de condiii. 44P preia cele mai reu,ite aspecte ale programrii structurate ,i le combin cu mai multe concepte noi+ puternice. 3deea 44P conduce la divi'area unei probleme n subgrupe de seciuni nrudite care in cont de codul ,i de datele corespun'toare din (iecare grup+ organi'ndu1le ntr1o structur ierar9ic. =imbajele de programare orientat pe obiect posed trei concepte (undamentale / >&ca-s!la e* #$%te&i e* -$li#$ (is#. ?&ca-s!la ea permite crearea unor obiecte (entiti logice care cuprind att date ct ,i un cod ce prelucrea' aceste date). )a const ntr1un mecanism care leag codul cu datele ,i le pstrea' n siguran. Adic+ un obiect posed un anumit nivel de protecie+ n sensul c nu se pot produce modi(icri accidentale sau o utili'are incorect a unor pri proprii ale acelui obiect de ctre anumite seciuni ale programului cu care nu are nici o legtur. <n $.iect se va identi(ica printr1o variabil de un tip de(init de utili'ator. Cnd n 44P se de(ine,te un obiect+ n mod implicit+ se creea' un nou tip de date. <n obiect real este caracteri'at prin structur ,i (uncionalitate. )l poate (i supus unei evoluii pstrndu1,i identitatea+ dar modi(icndu1,i structura ,i 2 sau aspectele sale (uncionale. Ca o conclu'ie+ $.iect!l constituie conceptul de ba' n 44P ,i cuprinde o structur de date ,i metode de operare.

"

Gipurile abstracte de date se vor de(ini cu ajutorul conceptului de clas. Clasele se a(l la ba'a programrii orientat pe obiect. Clasa este util n de(inirea naturii unui obiect ,i constituie unitatea de ba' pentru ncapsulare.

M$%te&i ea const ntr1un proces prin care un obiect poate prelua prototipul unui alt obiect. )a permite construirea unei ierar9ii de clase+ prin trecerea de la cele generale la cele particulare (clas 'e .a" 1 clas 'e ivat). ?iecare obiect trebuie de(init prin punerea n eviden a tuturor caracteristicilor sale. Fo,tenirea ns+ o(er posibilitatea de(inirii doar acele caracteristici ale obiectului+ care l identi(ic n mod unic n clasa sa. Ie a +ia se produce ntre diverse (orme de existen a materiei ,i di(erite (enomene. :n vr(ul ierar9iei se va a(la acel obiect care va avea trsturi comune cu toate celelalte componente din ierar9ie. 3erar9ia se poate pre'enta sub o (orm arborescent. 4dat stabilit+ ntre mai multe concepte+ ea nu este neaprat unic. :n 44P se permite de(inirea de ierar9ii ntre tipuri abstracte de date pe ba'a conceptului de mo,tenire. :n C+++ ierar9ia ntre tipuri abstracte de date se exprim prin ierar9ia de clase care implementea' acele tipuri abstracte de date. Aceast ierar9ie se stabile,te pe ba'a conceptelor de clas 'e .a" ,i clas 'e ivat (aceste concepte vor (i anali'ate pe parcurs).

paralelogram dreptung9i ptrat P$li#$ (is#!l este caracteristic programrii orientat pe obiect. )l ar putea (i interpretat ca $o inter(a 2metode multiple%. Acesta o(er posibilitatea ca o inter(a s (ie (olosit cu o clas general de aciuni. Compilatorul C++ permite ca polimor(ismul s (ie admis att n timpul rulrii ct ,i al compilrii. :ntr1o ierar9ie de clase+ care are la ba' conceptul de mo,tenire+ polimor(ismul este pus n eviden prin (!&c)ii #e#. e (metode pre'ente ntr1o clas) care pot avea (orme di(erite de la un nivel la altul. Ge9nica programrii orientat pe obiect di(er de cea a programrii structurate+ prin (aptul c* programarea structurat este dirijat de prelucrri+ iar 44P de de(inirea obiectelorprogramarea structurat tratea' complexitatea ,i diversitatea printr1o structurare a datelor ,i prelucrrii lor+ iar 44P se ba'ea' pe studiul modelelor ct mai apropiate de obiectele reale ,i de modul de repre'entare cunoscut de programator. )xist o serie de avantaje de ordin practic ale 44P* se (olosesc biblioteci ,i colecii de clase care mresc coe(icientul de reutili'are a codului scrisprogramatorul are garania utili'rii unor proceduri scurte+ inteligibile ,i corectebibliotecile de clase se mai pot (olosi ,i n reali'area prototipurilor unor produse so(tJare (un program simpli(icat+ (uncional+ care d o imagine corect a produsului (inal). romb

1 1

1 1 1

TEMATIC@ PROPUS@ . &e consider un apel al (unciei print(( ) din biblioteca stdio prin care se introduc in(ormaii din stdin: int u"88

printf(3Baloarea solicitat este Cd *n3, u) 8e ce la acest nivel este ceva mai greu de conceput un model+ care s accepte o abordare orientat pe obiectV Cum tratai situaia respectiv (olosind biblioteca iostreamD .. & scrie un program n C care utili'ea' (unciile - i&t(3 5 ,i sca&(3 5 inclu'nd stdio%( ,i apoi varianta aceluia,i program n C+++ utili'nd iostream%(% #. & considerm urmtorul exemplu de citire 2 scriere a unor date* 0 include /iostream%(. void main( ) { int 7 cin..7 cout //7 } Preci'ai ec9ivalenele n C. Ce di(erene exist ntre aceste (unciiV /. &criei programe+ n C+++ prin care s se reali'e'e concatenarea unor operaii de 324. 0. &criei programe + n C+++ n care s se (oloseasc (uncii de 324 la nivel de caracter.

You might also like