Clase

Laborator
7/10 (1 vot)
Conține 1 fișier: pdf
Pagini : 10 în total
Cuvinte : 1793
Mărime: 185.04KB (arhivat)
Publicat de: Sorin Mihalache
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Cristian Ionita
Laborator C++

Extras din laborator

Clasele reprezintă tipuri de data abstracte, asemănătoare structurilor, care încapsulează comportamentul şi datele asociate unei entităţi. Comportamentul este descris cu ajutorul metodelor (funcţii incluse), iar datele cu ajutorul atributelor. O instanţă (realizare concretă) a unei clase se numeşte obiect. Sintaxa utilizată pentru definirea claselor este asemănătoare cu cea pentru structuri:

class nume_clasa

{

// atribute si metode

};

Obiectele pot fi create ca orice variabilă cu sintaxa: nume_clasa nume_obiect;.

Metodele unei clase sunt similare funcţiilor obişnuite, cu două excepţii:

- primul parametru (adăugat automat de către compilator) este un pointer către obiectul curent

- metodele pot accesa direct atributele (nu necesită folosirea operatorului „.”)

Accesul din exterior la atributele şi metodele unei clase se face folosind operatorul „.” (sau „->” în cazul pointerilor).

Atributele şi metodele unei clase pot fi grupate din punctul de vedere al drepturilor de acces in trei categorii:

- private: pot fi accesate doar din interiorul clasei

- protected: pot fi accesate din interiorul clasei şi din clase derivate

- public: pot fi accesate atât din interiorul cât şi din exteriorul clasei

O clasă poate oferi acces nerestricţionat la membrii proprii prin utilizarea cuvântului cheie friend în una din formele:friend prorotip_funcţie; sau friend nume_clasă;.

Controlul accesului permite dezvoltatorului clasei limitarea modului de utilizare al clasei şi ascunderea implementării interne a operaţiilor. Prin aceasta cel care implementează clasa are posibilitatea de a modifica modul în care sunt stocate intern datele sau sunt implementate operaţiile fără a afecta aplicaţiile deja construite.

Modificatorii de acces pot fi utilizaţi atât in cadrul claselor cât şi în cadrul structurilor. Accesul este implicit public pentru structuri şi private pentru clase.

Metodele pot fi definite atât în interiorul clasei (inline) cât şi în afara acestora, folosind operatorul de rezoluţie „::”.

Exemplu – Clasa număr complex:

#include <iostream>

#include <cmath>

using namespace std;

// definire clasa

class Complex

{

public: // sectiunea publica (accesibila din exterior)

// definire metode inline

double& getReal() { return real; }

double& getImag() { return imag; }

// declarare metoda definita in afara clasei

double Modul();

private: // sectiunea privata

// definire atribute

double real, imag;

};

// definire metoda in afara clasei

double Complex::Modul()

{

return sqrt(real*real + imag*imag);

}

void main()

{

// definire obiect

Complex c1;

// apelare metode pentru setarea valorii

c1.getReal() = 4;

c1.getImag() = 3;

cout << "Modulul este " << c1.Modul() << endl;

}

Constructori

Constructorii sunt funcţii speciale apelate automat de compilator la crearea unui nou obiect. În cazul în care nu există nici un constructor definit de către programator, compilatorul va sintetiza un constructor implicit fără parametri.

Constructorii sunt metode ale clasei cu următoarele caracteristici:

- au numele identic cu al clasei din care fac parte

- nu au tip returnat

Rolul constructorilor este de a iniţializa atributele obiectului. O clasă poate avea mai mulţi constructori care să difere prin numărul şi/sau tipul parametrilor.

Spre deosebire de funcţiile obişnuite, constructorii pot avea o listă de iniţializare pentru atributele clasei de forma:

constructor(param constructor) : atribut_1(param), …, atribut_n(param) {…}

Exemple de constructori pentru clasa prezentată anterior:

Preview document

Clase - Pagina 1
Clase - Pagina 2
Clase - Pagina 3
Clase - Pagina 4
Clase - Pagina 5
Clase - Pagina 6
Clase - Pagina 7
Clase - Pagina 8
Clase - Pagina 9
Clase - Pagina 10

Conținut arhivă zip

Alții au mai descărcat și

Proiectarea unei Baze de Date

I. Principalele cerinte impuse de Serviciul de Ambulanta Judetean sunt urmatoarele : activitate acordarea serviciilor medicale de urgenta...

Tehnici Programare

1. Recapitularea unor elemente ale limbajului C 1.1 Structuri 1.1.1 Definire Se foloseste cuvantul cheie struct urmat de numele structurii si...

Implementarea tipului de date abstract - lista simplu înlănțuită în C

Lucrare de laborator Nr.2 si 3 Tema: Implementarea tipului de date abstract “Lista simplu inlantuita” in C Scopul lucrarii: obtinerea...

Programe în C++

1. /* sa se scrie un program care cere introducerea unei cifre de la tastatura si afiseaza ziua corespunzatoare cifrei introduse, folosindu-se...

Comenzi Fox Pro

- Create – crea (creaza o noua BD) - Modify structure – modi stru (modifica structura BD) - Use – use (foloseste o BD) - Select – sele () -...

Programare dinamică

On donne une phrase dans laquelle manquent les espaces entre les mots. On demande de reconstituer la phrase, ayant comme base un dictionnaire...

Ceasul Sistemului Windows

1.Scopul lucrarii: De studiat metodele si principiile de lucru cu timer-ul. 2.Sarcina lucrarii: De scris un program, care realizeaza urmatoarele....

Crearea și Vizualizarea unei Liste Liniare

Tema1: Scrieţi programul C care realizează crearea şi vizualizarea unei liste liniare implementată prin tipul pointer,dacă inserarea se face în...

Te-ar putea interesa și

Strategii de management și practici incluzive la nivelul clasei în învățământul primar

Managementul fiind una dintre cele mai vechi arte şi cele mai noi ştiinţe, răspunde tot mai prezent, în tot mai multe domenii, necesităţilor...

Metode, tehnici și instrumente de studiere a clasei de elevi ca grup educațional

INTRODUCERE Abordarea acestei lucrări, prin aspectele teoretice, metodele de abordare și practică, își propune să evidențieze complexitatea...

Trăsăturile clasei de elevi ca grup social - Sintalitatea

INTRODUCERE Învăţarea eficientă are următoarele caracteristici: este întotdeauna secvenţială şi contextualizată, este un proces individual chiar...

Relația între achizițiile operaționale la clasele V-VIII și orientarea profesională a adultului

Argument Acesta cercetare încearca sa stabileasca o legatura existenta între activitatea profesorului si implicarea scolii (la clasele V-VIII) în...

Formarea-dezvoltarea competenței de învățare autodirijată la elevii claselor I-IV

INTRODUCERE Tema din prezenta lucrare de diplomă este Formarea/dezvoltarea competenţei de învaţare autodirijată la elevii claselor I-IV, este o...

Organizarea managerială - studiu de caz pe școala generală cu clasele I-VIII, Șerbăuți, Suceava

ORGANIZAREA MANAGERIALĂ la nivelul unitatilor de invatamant Organizarea manageriala vizeaza saltul de la structurile ierarhice liniare...

Noțiunile de Geometrie Predate la Clasele I-II

INTRODUCERE Lucrarea de fata se intituleaza “Notiunile de geometrie predate la clasele I-II², si da o scurta introducere la câteva din notiunile...

Planul de Dezvoltare Instituționala în Cadrul Școlii Generale cu Clasele I-VIII Păusesti

MOTIVAŢIA ALEGERII TEMEI Motivaţia alegerii temei “Planul de dezvoltare instituţională in cadrul Şcolii Generale cu Clasele I VIII Păuşeşti” este...

Ai nevoie de altceva?