This shows you the differences between two versions of the page.
poo-is:laboratoare:03 [2020/09/10 08:21] alexandru.ionita99 [2. Structura de fișiere a unei aplicații] |
poo-is:laboratoare:03 [2020/10/22 12:30] (current) andreea.udrea |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Laboratorul 03: Definirea și utilizarea claselor. Funcții constructor ===== | + | ===== Laboratorul 03: Clase. Funcții Constructor ===== |
- | **__Introducere__\\ | + | In cadrul Laboratorului 3 vom explica si exemplifica cateva notiuni teoretice ce stau la baza Programarii Orientate pe Obiecte, precum clasele, functiile membre, constructorii si destructorii. De asemenea, vom prezenta o aplicatie C++, construita prin crearea de fisiere distincte, tocmai pentru a ne obisnui cu acest mod de dezvoltare a aplicatiilor. |
- | __Resurse__** | + | Pentru a aprofunda aceste concepte, recomandam urmatoarele capitole din [[https://discourse-production.oss-cn-shanghai.aliyuncs.com/original/3X/2/3/2380479dcb8e375425884a10da232730bbc7f88d.pdf|Absolute C++]] |
+ | * Capitolul 6 (Chapter 6. pag 239-274): Structures and Classes | ||
+ | * Capitolul 7 (Chapter 7. pag 275-320): Constructors and Other Tools | ||
==== 1. Introducere în programarea obiectuală ==== | ==== 1. Introducere în programarea obiectuală ==== | ||
Line 37: | Line 39: | ||
{ | { | ||
private: //implicit private, daca nu specificam | private: //implicit private, daca nu specificam | ||
- | string producator; | + | string producator; // pentru tipul string folositi documentatia din laboratorul 10 |
string model; | string model; | ||
string culoare; | string culoare; | ||
Line 146: | Line 148: | ||
} | } | ||
- | Dreptunghi::Dreptunghi(const Dreptunghi& d) | + | Dreptunghi::Dreptunghi(const Dreptunghi& d) //As putea sa nu implementez constr de copiere si sa il folosesc pe cel generat automat. |
- | { | + | { //deoarece nu am atribute pointer |
this->lungime = d.lungime; | this->lungime = d.lungime; | ||
this->latime = d.latime; | this->latime = d.latime; | ||
Line 154: | Line 156: | ||
Dreptunghi::~Dreptunghi() | Dreptunghi::~Dreptunghi() | ||
{ | { | ||
- | //Nu trebuie eliberat manual spatiul de memorie. Eventual, putem seta parametrii egali cu 0: | + | //Nu trebuie eliberat manual spatiul de memorie. As putea sa nu implementez destructorul si sa il folosesc pe cel generat automat. |
- | this->lungime = 0; | + | |
- | this->latime = 0; | + | |
} | } | ||
Line 314: | Line 316: | ||
</code> | </code> | ||
- | Se defineste un obiect stack la nivel exterior **"a"** (cu alocare statica). El va fi creat inainte de a incepe executia functiei **main**. In **main** sunt instantiate doua obiecte (**"b" si "c"**) si inca unul prin **alocare dinamica** (a se vedea forma **new stack(...)**). Apoi se fac cateva operatii uzuale cu stivele astfel definite. La consola se va urmari si explica secventa de mesaje din functiile constructor, destructor si main. De observat afisarea comoda la consola (cout) cu operatorul << (este necesar **#include <iostream.h>**). | + | Se defineste un obiect stack la nivel exterior **"a"** (cu alocare statica). El va fi creat inainte de a incepe executia functiei **main**. In main sunt **instantiate** doua obiecte (**"b" si "c"**) si inca unul prin **alocare dinamica** (a se vedea forma **new stack(...)**). Apoi se fac cateva operatii uzuale cu stivele astfel definite. La consola se va urmari si explica secventa de mesaje din functiile constructor, destructor si main. De observat afisarea comoda la consola (cout) cu operatorul << (este necesar **#include <iostream.h>**). |