מהו Inheritance Constructor ב-C++

Mhw Inheritance Constructor B C



ב-C++, יְרוּשָׁה הוא רעיון מפתח בתכנות מונחה עצמים. מחלקה נגזרת יכולה לרשת את התכונות וההתנהגויות של מחלקה בסיסית בזכות העוצמה יְרוּשָׁה יכולת ב-C++. מחלקה נגזרת יורשת מיד את כל האיברים של מחלקת הבסיס כאשר היא נוצרת. יש צורך שבנאי המחלקה הנגזרת יאתחל גם את חברי המחלקה הבסיסית. ב-C++, יְרוּשָׁה היא תכונה רבת עוצמה המאפשרת למפתחים לעשות שימוש חוזר בקוד, לשפר את היעילות ולארגן קוד בהיררכיות לוגיות.

יחד עם הירושה, בנאים חיוניים גם ב-C++. א בַּנַאִי היא פונקציית חבר ייחודית המאפשרת לך לאתחל את מאפייני האובייקט. א בנאי ירושה הוא בנאי המשמש לאתחול הן את מחלקת הבסיס והן את אובייקטי המחלקה הנגזרת שהמחלקה הנגזרת ירשה. ה בנאי ירושה אחראי לאתחל הן את חברי מחלקת הבסיס שעברו בירושה והן את חברי המחלקה הנגזרות. כדי להשיג זאת, הבנאי מפעיל את הבנאי של מחלקת הבסיס, ומבטיח שכל חברי המחלקה הנגזרת מאותחלים כהלכה, כולל אלה שהועברו בירושה ממחלקת הבסיס.

על ידי הפעלת הבנאי של מחלקת הבסיס והעברת הפרמטרים הדרושים לו, ה- בנאי ירושה מאתחל את חברי מחלקת הבסיס. זה מושג באמצעות ה 'מחלקה בסיס (args)' רשימת אתחול בקונסטרוקטור. הוראות נוספות ספציפיות למחלקה הנגזרת מסופקות בגוף הבנאי.







התחביר עבור בירושה מחלקה ב-C++ היא:



מעמד DerivedClass : accessSpecifier BaseClass {
// חברי הכיתה
} ;

המעמד החדש שנוצר במקרה זה, 'מחלקה נגזרת', יירש מ 'BaseClass'. רמת הגישה לחברים שעברו בירושה מוגדרת על ידי ' accessSpecifier'. C++ משתמש בשלושה סוגים של מפרטי גישה, כלומר 'ציבורי פרטי', ו 'מוּגָן' . המילה 'פּוּמְבֵּי' מציין שלמחלקה הנגזרת יש גישה לחברים הציבוריים של מחלקת הבסיס. למחלקה הנגזרת אין גישה לחברי מחלקת הבסיס, על פי ה 'פְּרָטִי' מפרט. לכיתה הנגזרת יש גישה לחברי כיתת הבסיס המוגנים שיכולים לעבור בירושה על ידי כיתות ילדיהם, על פי 'מוּגָן' מפרט.



דוגמה להורשה ב-C++

הדוגמה הבאה מציגה את היישום של יְרוּשָׁה ב-C++:





#include
באמצעות מרחב שמות סטד ;

מעמד בעל חיים {
פּוּמְבֵּי :
בָּטֵל לאכול ( ) {
cout << 'אני יכול לאכול!' << endl ;
}
בָּטֵל לִישׁוֹן ( ) {
cout << 'אני יכול לישון!' << endl ;
}
} ;
מעמד חתול : פּוּמְבֵּי בעל חיים {
פּוּמְבֵּי :
בָּטֵל מיאו ( ) {
cout << 'אני יכול מיאו!' << endl ;
}
} ;
int רָאשִׁי ( ) {
חתול חתול1 ;
חתול1. לאכול ( ) ;
חתול1. לִישׁוֹן ( ) ;
חתול1. מיאו ( ) ;

לַחֲזוֹר 0 ;
}

הקוד הנתון מגדיר שתי מחלקות, 'בעל חיים' ו 'חתול' , איפה 'חתול' נגזר 'בעל חיים' . לשתי המחלקות יש כמה פונקציות חבר, כגון 'לאכול לישון' , ו 'מיאו' . הפונקציה הראשית יוצרת אובייקט של המחלקה 'חתול' ומתקשר ל ירש פונקציות מהכיתה 'בעל חיים' כמו גם הפונקציה הספציפית של המחלקה 'חתול' , כלומר 'מיאו' . התוכנית מוציאה את הטקסט לקונסולה, מה שמצביע על כך שהחתול יכול לאכול, לישון ומיאו.

תְפוּקָה



כאשר מחלקה נגזרת, כל משתני האיברים ופונקציות האיברים של מחלקת הבסיס מועברים למחלקה הנגזרת. ה ירש הנגישות של החברים במחלקה הנגזרת נקבעת על ידי מפרט הגישה. המחלקה הנגזרת עשויה גם להחליף תכונות חדשות עבור אלו שכבר קיימות. זה יכול להוסיף הטמעות חדשות לשיטות של מחלקת הבסיס ולהוסיף פונקציות ומשתנים חברים חדשים.

חשוב לזכור כי בנאי ירושה יש להשתמש כדי לקרוא במפורש לבנאי מחלקת הבסיס עם הפרמטרים הדרושים אם למחלקת הבסיס יש בנאי ברירת מחדל או אם הוא אינו זמין.

סיכום

התכונה החזקה של יְרוּשָׁה ב-C++ מאפשר למחלקות לעשות שימוש חוזר בקוד על ידי הורשת מאפיינים ופעולות ממאפיינים אחרים. תכונה שימושית של C++ בנאי ירושה מאפשר למחלקות נגזרות לרשת את המאפיינים, השיטות ואיברי הנתונים של מחלקת בסיס. עם תוספת של רשימת אתחול עבור בנאי מחלקות בסיס, היא מוגדרת באמצעות אותו תחביר כמו בנאי סטנדרטי. מתכנתי C++ יכולים למזער את שכפול הקוד ולשפר את מבנה הקוד על ידי שימוש ב- בנאי ירושה . ליצירת היררכיות מחלקות מורכבות בתכנות מונחה עצמים, זהו כלי חשוב.