Administratie | Alimentatie | Arta cultura | Asistenta sociala | Astronomie |
Biologie | Chimie | Comunicare | Constructii | Cosmetica |
Desen | Diverse | Drept | Economie | Engleza |
Filozofie | Fizica | Franceza | Geografie | Germana |
Informatica | Istorie | Latina | Management | Marketing |
Matematica | Mecanica | Medicina | Pedagogie | Psihologie |
Romana | Stiinte politice | Transporturi | Turism |
Programare orientata pe obiecte. Clase compuse
Scopul lucrarii: Familiarizarea cu notiunile de
clasa compusa, lista de initializare, pseudo-constructori.
Desfasurarea
lucrarii: Se vor scrie programe in cadrul carora se vor
utiliza elementele principale ale compunerii claselor:
l Clase compuse;
l Folosirea listei de initializare in cadrul functiilor constructor ai unei clase compuse;
l Pseudo-constructori;
l Utilizarea modificatorilor de acces in cadrul claselor compuse.
Se vor utiliza paradigmele de abstractizare a datelor si compunere a claselor, aplicatiile avand fisiere header pentru declararea claselor si fisiere sursa pentru implementarea functiilor membre, precum si un fisier sursa pentru testare. Se vor identifica si proiecta modulele corespunzatoare pentru rezolvarea fiecarei aplicatii.
Declararea si folosirea claselor compuse
Prin agregarea unor obiecte instantiate din clase deja construite, intr-o clasa noua se defineste o clasa compusa.
Exemplu:
// fisierul header ce contine declaratiile claselor
#include <iostream>
#include <string>
using namespace std;
class CStudent
// functia modificator pentru campul nrMatricol
void setNrMatricol(int nrMatricol)
// functia modificator pentru campul medie
void setMedie(float m)
// functia accesor pentru campul medie
float getMedie()
// clasa compusa CGrupa ce contine un tablou de obiecte de tip CStudent
class CGrupa
// functia destructor
~CGrupa()
// declaratia functiei membru pentru citirea datelor studentilor din grupa
void citireStudenti();
// declaratia functiei membru pentru ordonarea studentilor din grupa dupa medie
void ordonareStudenti();
// declaratie functia membru pentru afisarea studentilor din grupa
void afisareStudenti();
// fisierul sursa pentru implementarea metodelor claselor
#include 'test.h'
//functia constructor implicit
CStudent::CStudent()
//functia constructor general
CStudent::CStudent(string nume, int nrMatricol, float medie)
// functia membru pentru citire a datelor unui student
void CStudent::citireDateStudent()
// functia membru pentru afisare a datelor unui student
void CStudent::afisareDateStudent()
// functiei membru pentru citirea datelor studentilor din grupa
void CGrupa::citireStudenti()
// functiei membru pentru ordonarea studentilor din grupa dupa medie
void CGrupa::ordonareStudenti()
// functia membru pentru afisarea studentilor din grupa
void CGrupa::afisareStudenti()
// fisierul sursa pentru testarea clasei compuse CGrupa
#include 'test.h'
int main()
Exemplu de utilizare a listei de initializare in cadrul functiilor constructor ai unei clase compuse:
class A
//clasa compusa B
class B
In cadrul unei clase compuse pot fi accesati pentru obiectele componente numai membrii de tip public. Pentru a accesa si membrii de tip private putem utiliza doua metode:
1. Implementarea in cadrul claselor de functii accesor/modificator publice (ca in cazul clasei CStudent din exemplul de mai sus);
2. Declararea clasei compuse ca si clasa prietena claselor componente.
Teme propuse:
1. Sa se modifice problema 4 (laboratorul
3) prin crearea unei noi clase asociata masinii Loto.
2. Sa se modifice problema 6 (laboratorul 3),
utilizand clasa ISBN din problema 5 (laboratorul 3) in cadrul clasei cartilor.
3. Sa se modifice problema 6 (laboratorul 3),
prin crearea unei clase suplimentare asociata bibliotecii.
4. Sa se modifice problema 2, prin crearea unei
clase suplimentare asociata bibliotecii.
5. Sa se modifice problema 7 (laboratorul 3)
prin crearea unei noi clase asociata unei activitati dintr-o saptamana. O
activitate consta dintr-un sir de caractere reprezentand numele activitatii, precum
si din data calendaristica a acesteia.
6. Sa se modifice problema 7 (laboratorul 3)
prin crearea unei noi clase reprezentand agenda electronica.
7. Sa se modifice problema 5 prin crearea unei
noi clase reprezentand agenda electronica.
Acest document nu se poate descarca
E posibil sa te intereseze alte documente despre:
|
Copyright © 2024 - Toate drepturile rezervate QReferat.com | Folositi documentele afisate ca sursa de inspiratie. Va recomandam sa nu copiati textul, ci sa compuneti propriul document pe baza informatiilor de pe site. { Home } { Contact } { Termeni si conditii } |
Documente similare:
|
ComentariiCaracterizari
|
Cauta document |