You are on page 1of 6

laboratoriuli samuSao 3

Tema: klasis meTodebis gansazRvra klasis gareT


wina masalaSi Seqmnil employee  klasSi funqcia gansazRvruli iyo TviT klasis SigniT
(CaSenebuli (inline) funqcia). CaSenebuli funqciis klasis SigniT gansazRvram klasis aRweraSi
SeiZleba uwesrigoba Seitanos. alternativis saxiT funqciis prototipi SeiZleba ganvaTavsoT klasis
SigniT, xolo Semdeg funqcia ganvsazRvroT klasis gareT. am SemTxvevaSi klasis gansazRvra
miiRebs Semdeg saxes:
class employee

public: 
   string name; 
   long employee_id; 
   float salary; 
   void show_employee(void); //funqciis prototipi 
};
radgan sxvadasxva klasebSi SeiZleba gamoviyenoT funqciebi erTnairi saxelebiT, amitom
funqcias unda davurToT klasis saxeli da globaluri nebarTvis operatori (::). am SemTxvevaSi
funqciis gansazRvra gamoiyureba Semdegi saxiT:
void employee:: show_employee (void) //klasis saxeli,
funqciis saxeli

   сout << "saxeli: " << name << endl;
cout << "TanamSromlis nomeri: " << employee_id << endl; 
   cout << "xelfasi: " << salary << endl; 
};
Semdegi programa show_employee  funqciis gansazRvras ganaTavsebs klasis gareT.
klasis saxelis misaTiTeblad gamoiyenebs globaluri nebarTvis operators:
#include <iostream>
#include <string.h>
#include<stdlib.h>
using namespace std;
class employee
{
public:
string name;
long employee_id;
float salary;
void show_employee(void);
};
void employee::show_employee(void)
{
cout << "saxeli: " << name << endl;
cout << "TanamSromlis nomeri: " << employee_id << endl;
cout << "xelfasi: " << salary << endl;
};
int main(void)
{
employee worker, boss;
worker.name="Burduli Tornike";
worker.employee_id = 12345;
worker.salary = 2500;
boss.name="SaxvaZe Vasili";
boss.employee_id = 101;
boss.salary = 3000;
worker.show_employee();
boss.show_employee();
system("pause");
}
პროგრამის შესრულების შედეგი:
saxeli: Burduli Tornike
TanamSromlis nomeri: 12345
xelfasi: 2500
saxeli: SaxvaZe Vasili
TanamSromlis nomeri: 101
xelfasi: 3000

klasis meTodebi
klasi programas saSualebas aZlevs obieqtis monacemebi da obieqtis funqciebi (meTodebi),
romlebic operireben am monacemebiT, dajgufebul iqnas erT cvladSi. Cven gvaqvs obieqtis
meTodebis gansazRvris ori SesaZlebloba. pirveli – funqciis mTeli kodi SeiZleba CarToT klasis
gansazRvris SigniT. SeiZleba es moxerxebulad mogveCvenos, magram rodesac klasebi
rTuldeba da moicavs ramdenime meTods, funqciis operatorebma SeiZleba uwesrigoba Seitanos
klasis gansazRvraSi. amdenad umetesoba programebSi funqcia ganisazRvreba klasis gareT.
klasis gansazRvraSi unda iyos funqciis prototipi, romelic Seicavs funqciis saxels, dasabrunebeli
mniSvnelobis tips da parametrebis tipebs. klasis gareT funqciis gansazRvra zogadad
gamoiyureba Semdegi saxiT:
return_type class_name::function_name(parameters) 
{ // operatorebi }
ganvixiloT magaliTi
programa qmnis dog klass, romelic Seicavs ramdenime monacems da show_breed
funqcias. funqcia gansazRvrulia klasis gareT. Semdeg programa qmnis dog tipis or obieqts da
gamoitans informacias calkeuli ZaRlis Sesaxeb:
#include <iostream.h>
#include <string.h>
#include<stdlib>
class dogs

public: 
string breed; 
   int average_weight; 
   int average_height; 
   void show_breed(void) ; 
};
void dogs::show_breed(void)

   cout << "jishi: " << breed << endl; 
   cout << "sashualo cona: " << average_weight << endl; 
   cout << "sashualo simagle: " << average_height << endl; 
}
void main(void)

   dogs happy, matt; 
   happy.breed= "dalmatineli" ; 
   happy.average_weight = 58; 
   happy.average_height = 24; 
   matt.breed= "kolli"; 
   matt.average_weight =22; 
   matt.average_height = 15; 
   happy.show_breed() ; 
   matt.show_breed(); 
system(“pause”);
}
am programaSi gamoyenebulia Wde public, romelic klasis elementebs misawvdoms
gaxdis mTeli programisaTvis.
daskvna:
mocemuli masalis Seswavlis Sedegad Tqven unda icodeT, rom:
 obieqti warmoadgens arsebas, romelTan mimarTebiT Tqveni programa asrulebs sxvadasxva
operacias;
 programa C++ enaze warmoadgens obieqtebs, romelic gadmocemulia klasebis meSveobiT;
 klasi struqturis msgavsad Seicavs elementebs. klasis elementebi SeiZleba iyos monacemebi
an funqciebi (meTodebi), romlebic operireben am monacemebiT;
 calkeul klass aqvs unikaluri saxeli;
 klasis gansazRvris Semdeg Tqven SegiZliaT gamoacxadoT am klasis obieqtebi, sadac
gamoiyenebT klasis saxels tipis saxiT;
 klasis elementebze mimarTvisaTvis (rogorc monacemebze, aseve funqciebze) Tqveni
programebi gamoiyeneben operator wertils;
 funqcia SeiZleba ganisazRvros klasis SigniT an gareT. Tu funqcias gansazRvravT klasis
gansazRvris gareT, unda miuTiToT klasis saxeli da globaluri nebarTvis saxeli, magaliTad:
class:: function.

davaleba: SeqmeniT klasi zRva, romelშic გამოაცხადეთ monacemebი: saxeli, siRrme,


farTobi. კლასში გამოაცხადეთ funqciის პროტოტიპი, romelic gamoitans zRvis
monacemebs, ხოლო თვით ფუნქცია gansazRvreT klasis gareT. mTavar funqciaSi SeqmeniT
zRva klasis sami obieqti da funqciis gamoZaxebiT gamoitaneT calkeuli zRvis monacemebi.
class Person

{
public:
    string name;
    int age;
    void move() {
        cout << name << " is moving"<< endl;
    }
};
int main()
{
    Person person;
    person.name = "Tom";
    person.age = 22;
    cout << "Name: " << person.name << "\tAge: " << person.age << endl;
    person.move();
 
    return 0;
}
შედეგი:

Name: Tom Age: 22

Tom is moving
კოდში შეიტანეთ შემდეგი ცვლილება: move() ფუნქციის პროტოტიპი გამოაცხადეთ კლასის
შიგნით, ხოლო თვით ფუნქცია განსაზღვრეთ კლასის გარეთ.

კლასის ობიექტზე მიმთითებელი


კლასის ობიექტზე, ისევე როგორც სხვა ტიპის ობიექტზე შეიძლება განისაზღვროს
მიმთითებელი. მისი მეშვეობით შეიძლება მივმართოთ კლასის წევრებს - ცვლადებს და
მეთოდებს. მხოლოდ, თუ ჩვეულებრივი ცვლადით მიმართვისას გამოიყენება სიმბოლო
„წერტილი“, კლასის წევრებზე მიმთითებლით მიმართვისას გამოიყენება -> სიმბოლო.
class Person
{
public:
    string name;
    int age;
    void move() {
        cout << name << " is moving" << endl;
    }
};
int main()
{
    Person person;
    Person *ptr = &person;
    ptr->name = "Tom";
    ptr->age = 22;
    ptr->move();
    cout << "Name: " << ptr->name << "\tAge: " << ptr->age << endl;
    cout << "Name: " << person.name << "\tAge: " << person.age << endl;
 
    return 0;
}

You might also like