Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Facilitati C++

c


Facilitati C++

Limbajul C++ ofera in plus fata de limbajul C unele facilitati noi. Un avantaj important il constituie notiunea de clasa (prin care se defineste un TAD), iar acestea pot forma o ierarhie, deci putem vorbi de o programare orientata obiect



Extensii ale limbajului C

In C++ exista un nou tip de comentariu (deja utilizat in exemplele anterioare):

. . . // Comentariu

Daca in limbajul C declaratiile erau scrise inainte de instructiuni, in C++ ele pot fi scrise oriunde.

Dispozitivelor standard de intrare-iesire li s-au atasat streamurile standard cin (pentru stdin) si respectiv cout (pentru stdout), care permit efectuarea operatiilor de intrare-iesire aplicand operatorul >> streamului cin, respectiv << streamului cout. Ierarhiile necesare sunt in fisierul iostream.h .

Exemplu:

#include <stdio.h>; #include <conio.h>;

#include <iostream.h>;

void main (void)

Daca in C conversia explicita se poate efectua prin (tip) expresie, in C++ se poate realiza si prin tip (expresie).

Exemplu:

#include <stdio.h>; #include <conio.h>;

#include <iostream.h>;

void main (void)

Operatori

Operatorul de rezolutie (::)

Acest operator ( ) se utilizeaza cand dorim sa referim o variabila globala redefinita intr-o functie, astfel:

Variabila

Exemplu:

#include <conio.h>;

#include <iostream.h>;

unsigned x; // Variabile Globale (::)

char    y[10];

int i=99;

void main (void)

Operatorul de adresa (&)

Acest operator (&) se poate utiliza si pentru a defini un tip referinta printr- declaratie de forma tip & (asemanator cu o constructie de forma tip , pentru pointer) Cu ajutorul acestui operator putem redenumi o variabila, putem realiza un apel prin referinta sau putem sa declaram o variabila de referinta astfel:

tip & parametru_formal // par. ref. (adresa

tip & nume_var_ref // var. de tip referinta

Exemple:

#include <conio.h>; // Redefinirea unei variabile

#include <iostream.h>;

void main (void)

#include <conio.h>; // Redefinirea unei functii

#include <iostream.h>;

#include <math.h>;

typedef double Functie (double);

void main (void)

#include <conio.h>; // Apel prin Referinta

#include <iostream.h>;

void suma (int x,int y,int z) // x,y z

void Suma (int x,int y,int &z) x,y z

void main (void)

Operatorii de alocare/dealocare (New/Delete)

Operatorul de alocare New se poate folosi in oricare dintre urmatoarele trei variante:

new tip

new tip ( Valoare_de_intitializare_a_variabilei_dinamice

new tip Numarul_de_variabile_dinamice_alocate

Dealocarea se realizeaza astfel:

delete Variabila_de_referinta

sau

delete Numarul_de_var_dinamice_alocate Variabila_de_referinta

Exemplu:

#include <stdio.h>; #include <conio.h>; #include <iostream.h>;

void main (void)

In exemplul urmator se va utiliza o matrice A cu numar variabil de coloane si o matrice B utilizand adresele liniilor:

#include <iostream.h>; #include 'Crt.Cpp'

typedef int Tip;

const n=4;

void main ()

for (i=1; i<=n; i++)

for (i=1; i<=n; i++)

int B[n+1][n+1];

for (i=1; i<=n; i++)

for (j=1; j<=n; j++) B[i][j]=i*10+j;

for (i=1; i<=n; i++) Readln();

Rezultate:

1 : 11

2 : 21 22

3 : 31 32 33

4 : 41 42 43 44

2 : 21 22

3 : 31 32 33

4 : 41 42 43 44

2 : 21 22 23 24

3 : 31 32 33 34

4 : 41 42 43 44

Structura, uniune si enumerare

Referirea acestor tipuri se poate face in C++ fara a mai fi nevoie de cuvantul corespunzator struct, union, respectiv enum. De asemenea, parametrii si valoarea unei functii pot fi structuri, pointeri la structuri sau referinte la structuri. Sunt permise si atribuiri de structuri.

Referirea componentelor unei uniuni anonime din interiorul unei structuri se face la fel ca si referirea componentelor structurii, iar prima componenta se poate initializa.

In C++, variabilelor de tip enumerare nu se mai pot atribui decat valori ale acestui tip (nu si numerele asociate acestor elemente).

Exemple:

#include <stdio.h>; #include <conio.h>; #include <iostream.h>;

typedef float Real;

enum    Figura ;

struct Punct ;

struct Cerc ;

struct Obiect ; };

Obiect Translatat ( Obiect o, Punct T )

void main (void)

Obiect O = };

Obiect C; C.FIG=cerc; C.CERC.Centru=O.PUNCT; C.CERC.Raza=10;

Obiect D; D=Translatat(C,P);

cout << ' D(' << D.CERC.Centru.x << ','

<< D.CERC.Centru.y << ','

<< D.CERC.Raza << ')' << endl; getch();

// Simetrizeaza cel mai apropiat punct fata de origine

#include <iostream.h>

#include 'crt.h'

struct Punct

Punct& SimO ()

};

Punct& Punct::CitP ()

void Punct::TipP ()

Punct& ApropO( Punct& P, Punct& Q )

void main (void)

// Simetrizeaza cel mai apropiat punct fata de origine

#include <iostream.h>

#include 'crt.h'

struct Punct

void TipP()

float D2 ()

Punct& SimO();

};

Punct& Punct::SimO()

Punct& ApropO (Punct& P, Punct& Q)

void main (void)



Document Info


Accesari: 930
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )