Class Base
{
…
public: void f();
};
class Derived : private Base
{
…
public:
Base::void f ();
};
Як правило, похідний клас оголошується зі специфікатором доступу базового класу public.
Приклад.
Class A
{
int a;
protected:
void aa(int u) {a = u;}
};
class B: public A
{
int b;
public:
void bb(int u);
};
void B::bb(int u)
{
b = u;
aa(u); //використання захищеного члена-функції
}
Аргументи, передані в базовий клас.
При створенні екземпляру похідного класу часто приходиться мати справу з конструкторами, що потребують передачі параметрів.
Приклад передачі параметрів.
Сlass A
{
int a, b, c;
public:
A(int x, int y, int z) (a = x; b = y; c = z;)
};
class B:public A
{
int val;
public:
B(int d):A(d, d+1, d+5) {val = d;}
B(int d, int e);
};
B::B(int d, int e):A(d, e, 13)
{
val = d + e;
}
Будь-які аргументи, передані в базовий клас, потрібно визначити до того, як виконується тіло конструктора, оскільки параметри передаються конструктору базового класу до того, як виконається конструктор похідного класу. Тут сказано потрібно, а не повинно. Якщо ви дійсно хочете передавати ініціалізовані параметри базовому класу, то не використовуйте їх доти, поки не проініціалізуєте.
Приклад передачі неініціалізованих параметрів базовому класу.
Дата добавления: 2014-12-26; просмотров: 844;