Restanță c++ part 2
După ce ai înțeles ideile principale pe care le-am scris în primul post și poți să iei mai mult de 5 la restanță și ți-ai dat seama că îți place programarea incredibil de mult (yea right) ar trebui să înțelegi câte ceva și despre moșteniri, constructori de copiere și overload-uri nițel mai complicate:
Avem clasa punct, două proprietăți (X, Y – coordonatele), un pi (îl vom folosi mai târziu când aflăm o arie) și două tipuri de constructori, de instațiere și de copiere:
Dacă te întrebi ce e cu “public:” acela aruncă un ochi aici la primele aliniate de la encapsulare.
Mai departe facem overload semnului << respectiv >> astfel încât să nu îmi afișeze o singură valoare ci ambele valori (x,y) respectiv să citească două valori (x, y)
Mai departe facem un overload simplu semnului += astfel încât el acceptă ca parametrii atât un întreg, cât și un punct.
Bun, până aici totul simplu. Nimic nou față de exercițiul de mai devreme înafara de constructorul de copiere și overload-ul semnului <<.
Acum Devine mai complicat, o să am o clasă cerc care derivă din clasa punct (class cerc: public punct). Pentru că derivă din punct înseamnă că moștenește proprietățile X, Y și eu nu mai trebuie decât să îi adaug raza R și constructorii specifici cercului: Un constructor în cazul în care mi se dau toate cele 3 date (coordonatele x, y și raza) și un constructor dacă mi se dă un punct și raza.
În exercițiul meu vreau să calculez și aria cercului (π*r*r). După cum v-am obișnuit am tipul returnat, numele metodei și parametrii (nu am în cazul meu).
Urmează acum să facem overload la >>, <<, += asemenea clasei punct. Specificând că am făcut o treabă inteligentă și nu am mai scris eu tot “out<<“-ul ci m-am folsosit de overload-ul semnului << pe care l-am creat mai sus în clasa punct.
E nițel mai complicat decât ce v-am arătat în primul articol, dar e normal să fie.. asta trebuie să faci dacă vrei să tinzi spre 10.
By: Adrian Coman