Anetaret e te dhenave, funksionet get dhe set.

Variablat qe deklarohen brenda funksionit quhen variabla lokalë dhe mund te njihen vetem brenda funksionit.

 

Ndonjehere eshte e nevojshme qe te gjithe funksionet anetare te manipulojne te njejtat te dhena. Te dhenat qe mund te perdoren nga te gjithe funksionet i deklarojme si variabla jashte cdo funksioni.

 

Atributat(vecorite) e nje objekti mund te deklarohen si variabla brenda deklarimit te klases. Keto variabla quhen anetare te dhenash  dhe deklarohen jashte funksioneve anetare.

Cdo objekt (instance e klases ) mban  kopjen e tij te atributeve ne memorje.

Shembulli i klases GradeBook i modifikuar ne menyre te tille qe emri i kursit te ndryshohet ne cdo ekzekutim duke e dhene ate nga tastiera.

Klasa permban dy funksionet get() dhe set().

Funksioni get() perdoret per te marre vleren e anetarit te te dhenave (atributit te objektit).

Ky eshte nje funksion qe kthen vlere dhe nuk merr parametra.

Forma e pergjithshme e funksionit get_anetari()

 tipi_anetarit get_anetari()

{

  return anetari;

}

Funksioni set() perdoret per te vendosur nje vlere te re ne anetarin e te dhenave.

Ky eshte nje funksion qe nuk kthen vlere  por merr nje parameter.

Forma e pergjithshme e funksionet set_anetari()

void set_anetari ( tipi_anetarit parametri)

{

 anetari = parametri;

}

Cdo funksion anetar i klases mund te manipuloje anetaret e te dhenave .

 private – access specifier qe tregon se keta anetare mund te perdoren vetem nga anetaret e kesaj klase perndryshe kemi gabim sintakse.

Kjo quhet fshehje e te dhenave.

Shembull:


     /* Ndertimi i klases GradeBook qe mban nje anetar te dhenash per emrin e 
kursit dhe funksionet anetare get dhe set per te marre dhe per te vendosur vleren e tij; */

#include <iostream>
#include <string>
using namespace std;

// deklarimi i klases
class GradeBook
{
private: // mund te aksesohet vetem nga funksionet anetare te klases
   string emriKursit; // emri i kursit per kete klase GradeBook
 
public:
   // funksioni qe vendos emrin e kursit
   void setEmriKursit( string emri )
   {      
      emriKursit = emri; // ruan emrin e kursit ne objekt
   } 
   
   // funksioni qe jep emrin e kursit
   string getEmriKursit() 
   {
      return emriKursit; // kthen emrin e kursit te objektit
   } 

   // funksioni qe shfaq mesazhin e pershendetjes
   void afishoMesazh()
   {
   cout << "Mirsevini ne librin e notave per kursin:\n" 
      << getEmriKursit() << "!"<< endl;
   } 
  
}; 

/******************************************/
int main()
{
   string emri_I_Kursit; // string karakteresh qe ruan emrin e kursit
   GradeBook libri1; // rijohet objekti libri1
   // shfaq vleren fillestare te emriKursit
   cout << "Vlera fillestare e emriKursit: "
    << libri1.getEmriKursit() << endl;

 
   cout << "\nJepni emrin e kursit:" 
   << endl;
   getline( cin, emri_I_Kursit ); // lexon emrin e kursit me hapesira
   libri1.setEmriKursit( emri_I_Kursit ); // vendos emrin e kursit
   cout << endl; // rresht bosh
   libri1.afishoMesazh(); // afishon mesazhin me emrin e ri te kursit

   system("pause");
   return 0; 
}	

Afishon: 

Vlera fillestare e emriKursit:

Jepni emrin e kursit:
Code for Students

Mirsevini ne librin e notave per kursin:
Code for Students!
Press any key to continue . . .

Vihet re se ne momentin e krijimit libri1 nuk ka vlere fillestare.