Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Extinderea limbajului C

c



+ Font mai mare | - Font mai mic



Extinderea limbajului C

Programele scrise in limbajul C pot fi executate si folosind compilatorul C++ (eventual cu modificari nesemnificative). Deci limbajul C++ contine toate instructiunile limbajului C, dar in plus ofera si facilitati noi. Cele mai importante avantaje ale limbajului C++ fata de C sunt urmatoarele. S-a introdus notiunea de clasa prin care se defineste un tip abstract de date, astfel programatorul are posibilitatea folosirii metodei de programare prin abstractizarea datelor. Clasele pot fi organizate intr-o ierarhie de clase, deci este posibila si programarea prin metode orientate obiect.



In continuare prezentam niste elemente noi ale limbajul C++, iar in sectiunile care urmeaza vor fi tratate facilitati noi, mai importante, referitoare la operatori, structuri, reuniuni, tipuri enumerare si functii.

Exista un nou tip de comentarii in limbajul C++ de forma: // comentariu

In acest caz, tot ce se afla dupa caracterele se va ignora de catre compilator, pana la sfarsitul randului.

In limbajul C o instructiune compusa este de forma:

Deci toate declaratiile trebuie sa fie inainte de prima instructiune. In limbajul C++ declaratiile si instructiunile pot fi in orice ordine in interiorul unei instructiuni compuse.

Nu exista instructiuni de intrare/iesire in limbajul C, si nici in C++. In schimb in limbajul C exista biblioteci standard de functii pentru operatii de intrare/iesire. Ele pot fi folosite si in limbajul C++, dar in afara de aceste biblioteci, mai exista si ierarhii de clase pentru realizarea operatiilor de intrare/iesire. Ele vor fi tratate pe larg in capitolul 4, dar pentru a putea utiliza aceste clase, prezentam aici niste exemple simple, ilustrative.

Dispozitivului standard de intrare respectiv iesire s-au atasat asa numitele streamuri standard: cin pentru stdin si cout pentru stdout. Operatiile de intrare se vor efectua aplicand operatorul >> streamului standar cin, iar cele de iesire aplicand operatorul << streamului standard cout.

Prezentam in continuare exemple de operatii de intrare/iesire folosind streamurile standard cin si cout. Pentru fiecare exemplu se va specifica in forma de comentariu echivalentul operatiei, folosind functii din biblioteca standard a limbajului C.

Ierarhia de clase pentru operatii de intrare/iesire poate fi utilizata numai daca se include fisierul iostream.h. In continuare prezentam exemple pentru operatii de afisare pe dispozitivul standard de iesire:

#include <iostream.h>

int main()

Exemple pentru operatii de citire de la dispozitivul standard de intrare:

#include <iostream.h>

int main()

Fara a intra acum in detalii mentionam ca operatorii << respectiv >> pot fi aplicati inlantuit. Deci de exemplu

int w;

cout << 'w = ' << w + 25 << 'n';

este echivalent cu

int w;

printf('w = %dn', w);

Trecerea la linie noua se poate efectua si cu

cout << endl;

Deci in loc de apelarea functiei printf de mai sus, s-ar fi putut scrie si:

cout << 'w = ' << w + 25 << endl;

Exista o diferenta minora dintre limbajele C si C++, referitoare la constantele de tip caracter. Ele sunt memorate pe doi octeti in limbajul C si au tipul int. In limbajul C++ insa exista doua feluri de constante de tip caracter. Memorate pe un octet ele au tipul char, iar pe doi octeti au tipul int.

Sa consideram urmatorul exemplu. Fisierul caracter.cpp

#include <iostream.h>

#include <conio.h>

int main()

Dupa executarea programului se obtine:

A cod: 65 octeti: 1

B cod: 66 octeti: 1

16961 octeti: 2

'B' * 256 + 'A' = 16961

Observam ca intr-adevar caracterul 'AB' este de tip int si in octetul mai semnificativ este memorat codul ASCII al caracterului 'B', iar in cel mai putin semnificativ codul ASCII al caracterului 'A'.

In limbajul C utilizarea operatorului de conversie explicita se face sub forma:

(tip) expresie

In limbajul C++ operatorul de conversie explicita se poate aplica si in modul urmator:

tip(expresie)

Sa consideram urmatorul exemplu. Fisierul conv1.cpp

#include <iostream.h>

#include <conio.h>

typedef double* p_double;

int main()

Dupa executarea programului obtinem:

1.333333

1

1.333333

Rezulta ca intr-adevar s-a realizat conversia variabilei x de la tipul double la tipul int, si conversia variabilei p de la tipul void* la tipul double*. Mentionam ca in acest caz, introducerea tipului p_double a fost obligatorie. Daca s-ar fi folosit conversia explicita (double*) p, atunci nu ar fi fost necesar definirea tipului p_double.

In limbajul C++ putem defini si conversii utilizator atasate unor tipuri definite de programator. Conversiile utilizator se vor trata in sectiunea 16.8.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 610
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved