Inicializimi i objekteve me konstruktor

Nese duam qe nje anetar te dhenash te marre vlere fillestare qe ne momentin e krijimit te objektit do te perdorim funksionin "konstruktor".

Cdo klase  mund te permbaje nje funksion "konstruktor" i cili inicializon objektet qe ne momentin e krijimit.

Konstruktori eshte nje funksion anetar i vecante qe ka te njejtin emer me klasen dhe nuk ka tip kthimi (madje as void).

Thirrja e konstruktorit behet automatikisht ne momentin e krijimit te objektit.

Nese ne nuk ndertojme nje konstruktor cdo klase permban nje "default constructor" i cili nuk ka parametra dhe u vendos anetareve te te dhenave vlerat default.

Trupi i konstruktorit permban instruksione qe u japin vlere anetareve te te dhenave nepermjet funksionit set (ose direkt).

 p.sh:


     GradeBook( string name ) 
{                                                    
    setEmriKursit( name );   // ose emriKursit = name;
} //fund konstruktori   

 

Ne momentin  e krijimit te objektit pas emrit te objektit vendosen ne kllapa argumentat sipas tipeve perkates. (Nese ka me shume se 1 ndahen me presje)

psh:

GradeBook libri1("CS101 Hyrje ne C++ Programming");

Shembull:


     /* Krijimi i shume objekteve nga klasa GradeBook dhe perdorimi i konstruktorit GradeBook per te specifikuar 
emrin e kursit per cdo objekt te krijuar*/

#include <iostream>   
using namespace std;
class GradeBook
{
public:
// Konstruktori inicializon emriKursit me nje string te kaluar si argument.
GradeBook( string emri ) 
{                                                                      
    setEmriKursit( emri ); // thirret funksioni set per inicializimin e emriKursit
} //fund konstruktori                                       

void setEmriKursit( string emri )
{
    emriKursit = emri; // ruan emrin e kursit ne objekt
}

string getEmriKursit()
{
 return emriKursit; // kthen emriKursit te objektit
} 
void afishoMesazh()
{
    cout << "Mirsevini ne librin e notave per\n" 
    << getEmriKursit()<< "!" << endl;
} 
private:
string emriKursit; 
}; 
/**************************************************/
int main()
{
GradeBook libri1( " Code For Students - C++ ");
GradeBook libri2( " Code For Students - JAVA " );         
cout<< "libri1 u krijua per kursin: " 
    << libri1.getEmriKursit()
    
    << "\nlibri2 u krijua per kursin: " 
    << libri2.getEmriKursit()
    << endl; 
    
    string s1;
    cout<<"Jepni emrin e kursit: ";
    cin>>s1;
    libri1.setEmriKursit(s1);
    cout<<"Kursi qe dhate eshte: "<<libri1.getEmriKursit()<<endl;
system("pause");
return 0; 
}  

 Afishon:

libri1 u krijua per kursin: Code For Students - C++
libri2 u krijua per kursin: Code For Students - JAVA
Jepni emrin e kursit: Programim
Kursi qe dhate eshte: Programim
Press any key to continue . . .