דף הבית  שיעורים  הורשה וגישה  בנאים והורשה
 
בנאים והורשה
 
נתבונן בדוגמא הבאה:

class Base {
public:
 int x;
 Base();
};

class Sub:public Base {
public:
 int y;
 Sub();
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

כפי שראינו בשיעורים קודמים, כאשר יוצרים אובייקט של תת המחלקה:

Sub a;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

המחשב יריץ את הבנאי של מחלקת האב ואז את הבנאי של תת המחלקה.
אבל נניח שהבנאי של מחלקת האב הוא בעל פרמטר:

class Base {
public:
 int x;
 Base(int a);
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

אז כאשר אתה יוצר אובייקט של תת המחלקה, אינך יכול להוסיף את הפרמטר כאן:

Sub a;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

מכיוון שלבנאי של תת המחלקה אין פרמטרים.
המקום בו תוכל להוסיף את הפרמטרים של הבנאי של מחלקת האב הוא בבנאי של תת המחלקה, בשורת האתחול, בה השתמשנו כמקום לאתחל את משתני המחלקה:

Sub::Sub():Base(5)
{
 y = 0;
}
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

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