Дефинисање изведених класа

Изведене класе се дефинишу у наредби class чији је општи облик:

class Ime_klase : public osnovna_Klasa, … , public osnovna_Klasa
{
clan clan ...
public: clan clan …
protected: clan clan …
private: clan clan …

};

: иза имена класе означавају да се ради о изведеној класи. Иза : наводе се идентификатори основних класа (једна класа може бити изведена из више основних класа)
Чланове изведене класе чине чланови (подаци и методе) њених основних класа (они се не наводе у телу изведене класе, подразумевано су њени чланови) и њени сопствени чланови који се декларишу унутар класе. Због тога се каже да изведена класа наслеђује све чланове својих основних класа. Ако се класа изводи из више основних класа у питању је вишеструко наслеђивање.
Конструктори, деструктор и метода operator= основне класе се не наслеђују; већ се генеришу, ако је то потребно.
Од конструктора генеришу се подразумевани конструктор и конструктор копије. Подразумевани конструктор има празно тело. Конструктор копије врши копирање вредности свог аргумента у објекат који се ствара, и то податак по податак. Генерисани деструктор има празно тело. Овако генерисани конструктори и деструктор омогућавају позивање евентуалних конструктора и деструктора основних класа. Детаљније у Стварање и уништавање примерака изведених класа.
Генерисана метода operator= додељује вредност податак по податак. То је основно тумачење оператора = без преклапања оператора. Подаци класних типова додељују се операторским функцијама за доделу вредности својих класа. Наслеђени подаци основних класа додељују се операторским функцијама за доделу вредности својих основних класа.
Контрола приступа члановима класе остварује се уметањем ознака public, protected и private. Тиме се класа дели на јавне, заштићене и приватне делове. Јавним члановима приступ је могућ без ограничења. Заштићеним члановима може се приступати из саме класе и из свих класа изведених из ње. Приватним члановима могућ је приступ само из дате класе.
Свака класа може да прогласи неке функције које нису њени чланови, као и целе класе, својим пријатељима. Пријатељске функције и/или класе имају неограничен приступ свим члановима класе. „Пријатељство” се не наслеђује. Пријатељ основне класе не постаје аутоматски пријатељ класе која је из ње изведена. Ако желимо да морамо те пријатеље дефинисати као пријатеље и у изведеној класи.
Модификатор public испред идентификатора основне класе означава јавно извођење, што значи да степен заштите свих наслеђених чланова остаје непромењен: јавни чланови основне класе остају јавни и у изведеној класи, заштићени чланови остају заштићени, а приватни остају приватни. Сви јавни чланови основне класе постају јавни чланови изведене класе. Због тога над објектима изведене класе могу да се изводе све радње као и над објектима основне класе, али и још неке друге радње које постоје само у изведеној класи.

Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s