Salut, sunt Serban si acesta este al treizecisidoilea tutorial dintr-o suita de tutoriale ale limbajului C++, tutoriale ce le voi face pentru tutorialevideo.info; In acest tutorial vom face cunostinta cu concepte de baza de Programare Orientata pe Obiecte.
In tutorialele precedente am prezentat concepte de baza ale limbajului C++, marea lor majoritate aplicandu-se si pentru limbajul C. Asa cum stim, C++ este un super-set al limbajului C. Dar limbajul C nu este un limbaj orientat pe obiecte, iar in acest tutorial vom descoperi de ce C++ este un astfel de limbaj.
In mod obisnuit, programele constau dintr-o lista de instructiuni scrise de programator ce definesc date si apoi lucreaza cu acele date. Datele si functiile care manipuleaza acele date sunt entitati separate care sunt combinate impreuna pentru a produce rezultatul dorit.
Si deci, ce este programarea orientata pe obiecte? Probabil vom reusi sa intelegem mai bine cu ajutorul unei analogii. Daca ne uitam in jurul nostru, observam ca suntem inconjurati de diferite obiecte, insa mereu de obiecte. Majoritatea obiectelor au doua componente:
– o serie de proprietati(culoare, greutate, dimensiune)
– un set de actiuni pe care le pot produce sau asupra lor se pot produce(daca sunt deschise, daca se pot umple cu lichid, etc.)
In programarea traditionala, imperativa, actiunile si proprietatile(functiile si datele) nu coabiteaza in acelasi mediu, facand astfel mai dificil de modularizat un program. Totodata, oamenii sunt obisnuiti sa priveasca concepte asociandu-le cu ceva(obiecte), ce desfasoara actiuni si au anumite proprietati.
Programarea orientata pe obiecte ne permite sa cream obiecte dupa bunul nostru plac care au ambele caracteristici si comportament mentionate mai sus. Asta ajuta ca programele sa fie mult mai bine modularizate, devenind astfel mai usor de parcurs si inteles. De asemenea, se poate refolosi cod mult mai mult folosind aceasta paradigma de programare. In plus, OOP(Object Oriented Programming) aduce alte concepte foarte folositoare, cum ar fi: mostenire, encapsulare, abstractizare si polimorfism.
O sa abordam aceste concepte in viitoarele tutoriale si vom invata cum si cand este folositor a le folosi. In momentul in care devenim familiari cu OOP, nu vom mai vrea prea curand sa ne intoarcem la modelul traditional de programare.
#include <iostream>
using namespace std;
class PlayText {
char *NewPointerVariable;
public:
PlayText(char *InputFromMainProgPointer);
int GetData(void);
};PlayText::PlayText(char *InputFromMainProgPointer) {
cout<<„Location: constructor implementation partn”;
cout<<„Examine the flow of execution!!!n”;
cout<<„String brought by object from main program is „<<„””<<InputFromMainProgPointer<<„””<<„n”;
cout<<„through pointer variable *InputFromMainProgPointern”;
cout<<„Assign this string to class member pointer variablen”;
cout<<„*NewPointerVariablen”;
cout<<„Next Location: Main programnn”;
NewPointerVariable = InputFromMainProgPointer;
}int PlayText::GetData(void) {
cout<<NewPointerVariable<<” = „;
return 100;
}void main() {
PlayText small(„of small size”);
cout<<„cout string of main program „Area of…” mix n”;
cout<<„with variable NewPointerVariable and silly integer valuen”;
cout<<„from implementation part by using small.GetData()….n”;
cout<<„Go to implementation part after next cout, and the output is: nn”;
cout<<„Area of wall surface „;
cout<<small.GetData()<<„n”;
}
NU uitati: cititi si documentati-va in plus, nu parcurgeti _doar_ aceste tutoriale pentru ca nu sunt
indeajuns pentru a va dezvolta calitatile de coding, ci sunt doar mici rampe de lansare catre cunoastere.
Dupa fiecare tutorial vizionat, abordati subiectul dezbatut in acesta pe net, in cartea `Thinking in C++`,
in sectiunea de comentarii.
NU lasati sa treaca pe langa voi o informatie neclara, pentru ca orice farama de cunoastere este importanta.