You are on page 1of 3

// Maтеријалот и примерите се дел од истражувањето од Матурската

проектна задача на ученикот Бошко Бошков од IV-3 клас

Конструктор/Деструктор
Постојат 3 начини за иницијализација :
Преку назначување (само доколку променливите се јавни)
Со користење на јавна функција
Со конструктор
Конструктори се функции кпи служат само за иницијализација на објектите. Може да
бидат :

Без параметри (default конструктор)


Со параметри (конструктор со параметри)
Тие секогаш имаат исто име како и класата. Не враќаат вредност. Секогаш треба да се
јавно достапни (public). Кога во класата нема декларирано конструктор, компајлерот
АВТОМАТСКИ претппставува дека е default конструктор.
Во следниот пример е напишана програма со 2 конструктпри, еден без параметри (default)
и еден со параметар :
#include <iostream>
using namespace std;
class Krug
{
private :
double radius;
public :
Krug()
{
//default конструктор
radius=0;
}
Krug(double r)
{
// со параметри
radius=r;
}

double getRadius()
{
return radius;
}
};
int main()
{
Krug k2; //повик на default конструкторот
cout<<k2.getRadius()<<endl;
Krug k3(3.5); //повик на конструкторот со параметри
cout<<k3.getRadius()<<endl;
return 0; }
Наследување
Наследнoст претставува мoжнoст за изведување на нови објекти од веќе постпечки.
Дозволува објекти од поспецифична класа да наследат :
Податоци
Функции
Наследувањето е можност за дефинирање на хиерархија.
Пример :
Веспа - дел од поопшта класа Мотор.
Мотор - дел од поопшта класа Моторно возило.
Пример имаме 3 класи : полигон, правоаголник и квадрат. Правоаголникот и квадратот се
полигони, така да може да се користат методи и променливи од класата полигон. Нека е
дадена класата за полигон во која имаме само параметри за должина и висина и една
функција за поставување на параметрите.
За класата правоаголник велиме дека наследува од класата полигон.
Па во класата правоаголник ќе ги имаме сам функциите што се различни пд класата
полигон. Во класата полигон променливите ги ставаме да бидат protected за да може да
ги пристапиме од класата која наследува.

За класата правоаголник велиме дека наследува од класата полигон.


Па во класата правоаголник ќе ги имаме само функциите што се различни од класата
полигон. Во класата полигон променливите ги ставаме да бидат protected за да може да
ги пристапиме од класата која наследува.
Целосното решение за двете класи би било :
#include <iostream>
#include<cmath>
using namespace std;
class Poligon
{
protected:
float dolzina;
float visina;
public:
void setParametar(float d,float v)
{
dolzina=d;
visina=v;
}
};
class Kvadrat:public Poligon

{
public:
float presmetajPlostina()
{
return dolzina*visina;
}
};
class Pravoagolnik:public Poligon{
public:
float presmetajPlostina(){
return dolzina*visina;
}
};
int main()
{
Kvadrat objekt;
objekt.setParametar(7.2,7.2);
cout<<"Plostinata na kvadratot iznesuva : "<<objekt.presmetajPlostina()<<endl;
Pravoagolnik objekt2;
objekt2.setParametar(4.2,5.3);
cout<<"Plostinata na pravoagolnikot iznesuva : "<<objekt2.presmetajPlostina();
return 0;
}

You might also like