Documente Academic
Documente Profesional
Documente Cultură
Cursul1
rev 1.4/PP/20131020
Coninut
Recapitulare,extensiiC++
ConceptePOO,clase,obiecte
Constructori,destructoriconstructordecopiere
Intrri/IeiriC++
Suprancrcareaoperatorilor
Motenireiderivare
Clasegenerice(template)
Bibliotecastandarddeclasegenerice: STL (StandardTemplate Library)
Referinebibliografice
I.Smeureanu,M.Drdal, Programarea orientat obiect n limbajul
C++, EdituraCISON, 2004
Bjarne Stroustroup ,TheC++ProgrammingLanguage,4thEdition,
AddisonWesley,2013
C++LanguageReference,MSDN
Cursuriiseminarii
Materialedisponibileonline
Moduldenotare
Examinarefinal:60%(obligatoriu notdetrecere)
Testecurs:10%
Activiti seminar 40%:
Proiectdedisciplin(condiie deintrarenexamen)
Lucraredelaborator
Sumar
Recapitulare
Apelulfunciilor
Pointerilafuncii
Pointeri constani
Preprocesare
Elementenoidelimbaj(C++)
Alocareamemorieiireferine
Domeniidenume
Sistemuldeintrareieire
Tratareaexcepiilor
Recapitulare
Apelulfunciilor
#include<stdio.h>
// prototipulfunciei
float media(float,float);
void main()
{
floatn1,n2,n3;
//initializeaza n1si n2
n3=media(n1,n2);
printf("mediaeste:%f",n3);
}
//definireafunctiei
floatmedia(floata,float b)
{
floatmed=(a+b)/2;
returnmed;
}
Apelulfunciilor
Segmentdecod
Stiva
Saltlacodul
funciei
Apelfuncie
Adresafunciei
Fir
execuie
n1
n2
Adresarevenire
Adresa prec.
Codfuncie
Adresade
revenire
b
a
}
Parametri reali
med }
Variabil local
Reveniredin
funcie
}
Variabile locale
main() media(a,b)
main
media
n3
Pointerilafuncii
Numeleuneifuncii:pointerconstant
adresadinmemorieasociatcoduluiexecutabil
Seutilizeazpentrutransmitereafunciilorcaparametrialtorfuncii
Componente:
Tipulparametrilor
Tipulreturnat
Seiniializeazcunumeleuneifuncii
Exempledeutilizarentlnite:
Sortare:modalitateadeordonare
Funciicuapelinvers(callback)
Diferitecalcule/operaii(implementateprinfunciicuacelaiprototip)aplicate
repetatpeaceleaiseturidedate
Pointerilafuncii
void (*pf2)()
Pointerlafuncie frparametricarenureturneazvaloare
bool (*pf1)(int,int)
Pointerlafuncie cudoiparametridetipint carereturneazbool
int (*pf3)(int)
Pointerlafuncie cuunparametrudetipint carereturneazint
double (*pf4[N])(double,double)
VectordeNpointerilafunciicudoiparametridetipdouble carereturneaz
double
Constantedetippointer
Pointerconstant:
Tip*const p =adresa;
Pointerlaozondememorieconstant
Tipconst *p;
const Tip*p;
Pointerconstantlaozondememorieconstant
const Tip*const p =adresa;
Directivepreprocesor
Includerefiiere(#include)
Constantesimbolice/macrodefiniii (#define,#undef)
Compilarecondiionat(#ifdef,#ifndef,#else,#endif)
Erori(#error)
Opiunicompilare(#pragma)
Controlulliniilordecodlacompilare(#line)
Operatori preprocesare
# transformare nirdecaractere
##concatenareparametri
Elementenoidelimbaj(C++)
Alocarea memoriei
Operatoriinew idelete
Referine
Alocarea memoriei
Operatorul new
Alocare fr iniializare
int *pi=new int;
Alocarea cuiniializare
int *pi=new int(3);
Alocaremasivunidimensional
int *pv =new int[10];
Deverificat rezultatul alocrii!
Eliberarea memoriei
Operatoruldelete
Eliberarememorieelement
delete pi;
Eliberare memorie masiv;
delete[]pv;
malloc()/free() inew/delete!
Alocare dinamic Probleme posibile
Referireaunorzonedememorieprotejate
Referireaunorzonedememorieeliberate(dangling pointers)
Neeliberareamemoriei(memory leaks)
ncercareadeeliberareamemorieieliberatanterior
Alocarea memoriei
*pa =20;
pa xx
xx
xx
Alocarea memoriei
deletepa;
*pa =20;
pa 3
Stiva
Heap
Alocarea memoriei
{
int *pa =new int(3);
}
pa 3
Stiva
Heap
Alocarea memoriei