Vendosja e nje klase ne nje file te ndare per riperdorshmeri

Nese do te perfshinim nje nga programet e deritanishme ne programe te tjera do te kishim gabim sintakse sepse programi i ri do te kishte 2 funksione main.

Per kete arsye Klasa GradeBook duhet paketuar ne nje skedar tjeter per riperdorshmeri por pa funksionin kryesor main.

Klasat paketohen ne skedare qe kane prapashtesen .h dhe qe quhen "header files" dhe me pas ato mund te perfshihen ne programet qe duam me ane te direktivave te preprocesorit  #include p.sh. nese libraria ndodhet ne te njejten dosje (folder) me programin tone mund te shkruajme:

#include "GradeBook.h" 

Nese libraria ndodhet ne nje direktori tjeter p.sh ne C:\Users\Admin\Documents

atehere do shkruajme:

#include " C:\\Users\\Admin\\Documents\\GradeBook.h" 

Skematikisht lidhja e dy skedareve do kishte formen:

Keshtu programi GradeBook do te kishte formen:

GradeBook.h


     // Klasa GradeBook ne nje file te ndare nga main
#include <iostream> 
#include <string> 
using namespace std;

class GradeBook
{public:
// Konstruktori inicializon emriKursit me nje string te kaluar si argument.
GradeBook( string name ) 
{                                                                      
    setEmriKursit( name );// thirret funksioni set per inicializimin e emriKursit
} //fund konstruktori                                       

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

string getEmriKursit()
{
 return emriKursit; // kthen emriKursit te objektit
} 
void afishoMesazh()
{
    cout << "Mirsevini ne librin e notave per kursin \n" 
    << getEmriKursit()<< "!" << endl;
} 
private:
string emriKursit; 
};

Ky skedar vetem mund te ruhet, pra nuk mund te ekzekutohet pasi nuk ka funksionin kryesor main.

Pasi ruhet ky skedar me prapashtesen .h ndertohet ne nje skedar tjeter programi i ekzekutueshem:

TestGradeBook.cpp


     // Perfshihet klasa GradeBook nga GradeBook.h per perdorim ne main.
#include <iostream>
using namespace std;

#include "GradeBook.h" // Perfshihet deklarimi i klases GradeBook 
//ose:  #include "D:\\C++\\USHTRIME\\GradeBook.h"
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; 
system("pause");
return 0; 
}

Afishon:

libri1 u krijua per kursin: Code For Students - C++
libri2 u krijua per kursin: Code For Students - JAVA
Press any key to continue . . .