Мұрагерлік - Object-Oriented Programming System (OOP) жүйесінің ерекшелігі болып табылады, ол бала сыныпқа басты сыныптың қасиеттерін (деректер мүшелерін) және функционалдылығын (мүше функцияларын) алуға мүмкіндік береді.
Бала сынып деген не?
Басқа классты иемденетін сынып баланың сыныбы ретінде белгілі, ол сондай-ақ, бастапқы сынып немесе қосалқы сынып ретінде белгілі.
Ата-аналық сынып деген не?
Басқа класс мұраланған сынып ата-ана класы, супер сынып немесе базалық сынып деп аталады.
Мұрагерлік синтаксисі
class parent_class { // ата-аналық сыныптың органы }; Сынып child_class: access_modifier parent_class {// Бала сыныптың құрамы };
C ++ бағдарламасында мұраны пайдаланудың қандай артықшылықтары бар?
Мұраданың негізгі артықшылықтары - кодтың қайта оқылуы және оқылу мүмкіндігі . Бала сынып ата-аналық сыныптың қасиеттері мен функционалдығын иеленсе, біз баланың сыныбында бірдей кодты қайтадан жазудың қажеті жоқ. Бұл кодты қайта пайдалануды жеңілдетеді, бізге аз коды жазады және кодты оқуға болады.
Түсіну үшін нақты өмір сүруге мысал келтірейік : Human
- бұл биіктік, салмақ, түс және т.б. сияқты қасиеттері бар, мысалы, жеуге (), ұйықтауға (), армандауға (), жұмысқа () және т.б.
Енді Male
мен Female
сыныптарын құруды қалаймыз, бұл сыныптар әртүрлі, бірақ еркек пен әйелдің екеуі де адам болып табылады, өйткені олар адам қасиеттерін және функционалдығын Адам классынан иеленіп, демалысын олардың қасиеттерін мұра етуі мүмкін. бөлек бөлек.
Бұл әдіс бізге аз кодты жазады, өйткені сыныптар бірнеше кластардан қасиеттер мен функцияларды мұраға алып, оларды қайта жазудың қажеті жоқ. Сондай-ақ, бұл кодты оқуды жеңілдетеді.
Мұрагерлік мысал
Мұралықтың түрлерін талқыламас бұрын, мысал келтірейік:
Міне, бізде Teacher
және MathTeacher
екі сынып бар, MathTeacher сыныбы мұғалімдік сыныпты мұра етеді, Teacher
- ата-ана болып табылады және MathTeacher
- бала сыныпты білдіреді. Бала класы ата-аналар класының collegeName
пайдалана алады.
Тағы бір маңызды сәтте, біз бала сыныптарының объектісін жасаған кезде, бұл бала сыныпты конструктор шақырады және бала сынып конструкторы автоматты түрде негізгі класс конструкторын шақырады.
#include <iostream> аттар кеңістігін пайдалану std; сынып мұғалімі { жұртшылық: Мұғалім () { cout << «Hey guys, мен мұғаліммін» << endl; } string колледжName = «Beginnersbook»; }; // Бұл сынып мұғалімнің сыныбын иеленеді сынып MathTeacher: public мұғалімі { жұртшылық: MathTeacher () { cout << «Мен математик Ұстазымын» << endl; } string mainSub = «Математика»; string name = «Negan»; }; int main () { MathTeacher obj; cout << «Аты:» << obj.name << endl; cout << «Колледждің аты:» << obj.collegeName << endl; cout << «Негізгі тақырып:» << obj.mainSub << endl; 0 қайтару; }
Шығару:
Hey guys, мен мұғаліммін Мен математик Ұстазымын Атауы: Неган Колледждің атауы: Бастауыш кітабы Негізгі тақырып: Математика
C ++ ішінде мұра түрлері
1) Бірыңғай мұра
2) көп деңгейлі мұра
3) Көптеген мұра
4) иерархиялық мұра
5) гибридті мұра
Жалғыз мұра
Жалғыз мұрада бір сынып бір класты дәл мұра етеді.
Мысалы: А және В сыныптары бар деп айтуға болады
B мұраға ие болады
Жалғыз мұра үлгісі:
#include <iostream> аттар кеңістігін пайдалану std; сынып A { жұртшылық: A () { cout << «A класының конструкторы» << endl; } }; B класы: қоғамдық A { жұртшылық: B () { cout << «B сыныпты конструкторы»; } }; int main () {// B сыныбының нысанын жасауB obj;0 қайтару; }
Шығару:
A сыныпты конструкторы B сыныпты конструкторы
2) көп деңгейлі мұра
Мүліктің осы түрінде бір сынып басқа бір бала сыныпты мұра етеді.
C және B мұраларды иеленеді
Көп қабатты мұра үлгісі:
#include <iostream> аттар кеңістігін пайдалану std; сынып A { жұртшылық: A () { cout << «A класының конструкторы» << endl; } }; B класы: қоғамдық A { жұртшылық: B () { cout << «B сыныпты конструкторы» << endl; } }; класс C: public B { жұртшылық: C () { cout << << C сыныпты конструктор >> << endl; } }; int main () { // C сыныбының нысанын жасау C obj; 0 қайтару; }
Шығару:
A сыныпты конструкторы B сыныпты конструкторы C сыныпты конструктор
Көптеген мұра
Көптеген мұраға бір сыныптан бір сынып мұра алады. Бұл дегеніміз, мұрагерліктің осы түрінде бірыңғай балалар классында бірнеше ата-ана сыныптары болуы мүмкін.
Мысалға:
C және A екеуін де мұраға алады
Көптеген мұрагерлік мысалы:
#include <iostream> аттар кеңістігін пайдалану std; сынып A { жұртшылық: A () { cout << «A класының конструкторы» << endl; } }; сынып B { жұртшылық: B () { cout << «B сыныпты конструкторы» << endl; } }; класс C: public A, public B { жұртшылық: C () { cout << << C сыныпты конструктор >> << endl; } }; int main () {// C сыныбының нысанын жасауC obj;0 қайтару; }
A сыныпты конструкторы B сыныпты конструкторы C сыныпты конструктор
4) иерархиялық мұра
Бұл мұра түрінде ата-аналар бір сыныпта бірнеше бала сыныптары бар. Мысалға:
В және С класы А класты мұраға алады
Иерархиялық мұра үлгісі:
#include <iostream> аттар кеңістігін пайдалану std; сынып A { жұртшылық: A () { cout << «A класының конструкторы» << endl; } }; B класы: қоғамдық A { жұртшылық: B () { cout << «B сыныпты конструкторы» << endl; } }; сынып C: public A { жұртшылық: C () { cout << << C сыныпты конструктор >> << endl; } }; int main () {// C сыныбының нысанын жасауC obj;0 қайтару; }
Шығару:
A сыныпты конструкторы C сыныпты конструктор
5) Гибридті мұра
Гибридті мұра - бұл мұраның бірнеше түрінің тіркесімі. Мысалы, бірнеше және иерархиялық мұрадан кейінгі баланың және ата-ана қатынастарының қатынасы гибридті мұра деп аталуы мүмкін.
Пікір қалдыру Жауапты