|
דף הבית >>
הורשה>> גישה למחלקת
בסיס>> הורשה וחברים
מוגנים>>הורשת מחלקת בסיס מוגנת |
הורשת
מחלקת בסיס מוגנת
|
|
|
ישנה אפשרות להוריש מחלקת
בסיס מוגנת . כשזה נעשה כל החברים הציבוריים ומוגנים של מחלקת
הבסיס הופכים לחברים מוגנים במחלקה הנגזרת , לדוגמה .
|
|
|
#include <iostream.h>
class base {
protected:
int i , j ; //private to base , accessible by derived
public:
void setij ( int a ,int b ) {i = a ; j= b; }
void showij ( ) {cout << i << " " << j << " \n " ; }
};
// inherit base as protected.
class derived : protected base {
int k;
public:
//derived may access base's i and j and setij ().
void setk ( ) { setij ( 10 , 12 ) ; k = i * j ; }
//may access showij ( ) here
void showall ( ) {cout << k << " " ; showij ( ) ; }
};
int main ( )
{
derived ob ;
ob.setij ( 2 , 3 ) ; //illegal ,setij ( ) is protected member of derived
ob.setk ( ) ; //ok ,public member of derived
ob.showall ( ) ;//ok ,public member of derived
ob.showij ( ) ; //illegal ,showij ( ) is protected member of derived
return 0 ;
}
|
|
|
כשאתה קורה את הערות אתה יכול לראות ,שאפילו
ש ( )setij ו ( )showij הם חברים ציבוריים במחלקת הבסיס,הם
הופכים לחברים מוגנים במחלקה הנגזרת ,כשהיא מורשת ממחלקת הבסיס
כמוגנת.הכוונה היא שהם לא יהיו נגישים בתוך ה ( )main.
|
|
|
הורשה
של מס מחלקות בסיס.
אפשרי למחלקה נגזרת לרשת משניים או יותר מחלקות
בסיס,לדוגמה :
|
|
|
#include <iostream.h>
class base1 {
protected:
int x;
public:
void showx ( ) { cout << x << " \n "; }
};
class base 2 {
protected :
int y ;
public:
void showy ( ) { cout << y << " \n " ; }
};
//inherit multiple base classes .
class derived : public basee1 , public base2 {
public:
void set (int i , int j ) { x = i ; y = j ;}
};
int main ( )
{
derived ob ;
ob.set( 10, 20 ); //provided by derived
ob.showx ( ) ; //from base1
ob.showy( ) ; //from base2
return 0;
}
|
|
|
הקודם
|
|
הבא
|
|
|