Шта је конструктор наслеђивања у Ц++?

Sta Je Konstruktor Nasledivana U C



У Ц++, наслеђе је кључни појам у објектно оријентисаном програмирању. Изведена класа може наследити особине и понашања основне класе захваљујући моћним наслеђе способност у Ц++. Изведена класа одмах наслеђује све чланове основне класе када се формира. Неопходно је да конструктор изведене класе иницијализује и чланове основне класе. У Ц++, наслеђе је моћна функција која омогућава програмерима да поново користе код, побољшају ефикасност и организују код у логичке хијерархије.

Поред наслеђивања, конструктори су такође неопходни у Ц++. А конструктор је јединствена функција члана која вам омогућава да иницијализујете својства објекта. Ан Конструктор наслеђивања је конструктор који се користи за иницијализацију и основне класе и објеката изведене класе које је изведена класа наследила. Тхе конструктор наслеђивања одговоран је за иницијализацију и наслеђених чланова основне класе и чланова изведене класе. Да би ово постигао, конструктор позива конструктор основне класе, обезбеђујући да су сви чланови изведене класе правилно иницијализовани, укључујући и оне наслеђене из основне класе.

Позивањем конструктора основне класе и прослеђивањем потребних параметара, конструктор наслеђивања иницијализује чланове основне класе. Ово се постиже коришћењем 'основна класа(аргс)' иницијализационе листе у конструктору. Даља упутства за изведену класу су дата у телу конструктора.







Синтакса за наслеђивање класа у Ц++ је:



класа ДериведЦласс : аццессСпецифиер БасеЦласс {
// чланови разреда
} ;

Нова класа која се формира у овом случају, „Изведена класа“, ће наследити од „Основна класа“. Ниво приступа наслеђеним члановима одређен је „ аццессСпецифиер”. Ц++ користи три типа спецификација приступа, наиме 'јавно приватно', и 'заштићен' . Реч 'јавно' означава да изведена класа има приступ јавним члановима основне класе. Изведена класа нема приступ члановима основне класе, према 'приватни' спецификација. Изведена класа има приступ заштићеним члановима основне класе које могу наследити њихове подређене класе, према 'заштићен' спецификација.



Пример наслеђивања у Ц++

Следећи пример показује имплементацију Наслеђе у Ц++:





#инцлуде <иостреам>
Користећи именског простора стд ;

класа Анимал {
јавности :
празнина јести ( ) {
цоут << 'Ја могу јести!' << ендл ;
}
празнина спавати ( ) {
цоут << 'Могу да спавам!' << ендл ;
}
} ;
класа Цат : јавности Анимал {
јавности :
празнина Мјау ( ) {
цоут << 'Могу да мјаучу!' << ендл ;
}
} ;
инт главни ( ) {
Цат цат1 ;
цат1. јести ( ) ;
цат1. спавати ( ) ;
цат1. Мјау ( ) ;

повратак 0 ;
}

Дати код дефинише две класе, “животиња” и “мачка” , где “мачка” је изведено из “животиња” . Обе класе имају неке функције члана, као нпр 'јести', 'спавати' , и 'Мјау' . Главна функција креира објекат класе “мачка” и позива на наследио функције из класе “животиња” као и специфична функција класе “мачка” , која је 'Мјау' . Програм шаље текст на конзолу, указујући да мачка може да једе, спава и мјауче.

Излаз



Када је класа изведена, све променљиве чланице основне класе и функције чланице се преносе у изведену класу. Тхе наследио Приступачност чланова у изведеној класи је одређена спецификацијом приступа. Изведена класа такође може заменити нове карактеристике за оне које већ постоје. Може да додаје нове имплементације за методе основне класе и додаје нове функције чланова и променљиве.

Кључно је запамтити да је конструктор наслеђивања мора се користити за експлицитно позивање конструктора основне класе са потребним параметрима ако основна класа има подразумевани конструктор или ако није доступан.

Закључак

Јака карактеристика наслеђе у Ц++ дозвољава класама да поново користе код наслеђујући карактеристике и радње од других. Корисна карактеристика Ц++-а конструктор наслеђивања дозвољава изведеним класама да наследе својства, методе и чланове података основне класе. Уз додатак иницијализационе листе за конструкторе основне класе, она се дефинише користећи исту синтаксу као стандардни конструктор. Ц++ програмери могу минимизирати дуплицирање кода и побољшати структуру кода користећи конструктор наслеђивања . За креирање сложених хијерархија класа у објектно оријентисаном програмирању, то је важан алат.