И так, допустим, имеем базовый класс :
Код
class base
{
private:
int priv;
protected:
int prot;
public:
int pub;
};
{
private:
int priv;
protected:
int prot;
public:
int pub;
};
выводим из него производный класс:
Код
class derived:public base
{
private:
priv_de;
protected:
prot_de;
public:
pub_de;
};
{
private:
priv_de;
protected:
prot_de;
public:
pub_de;
};
А теперь внимание вопросы:
1.имеется ли доступ к private-членам базового класса из производного?
2.если производный класс наследуется как private, то public-члены базового становятся недоступными для производного и становятся его public членами? например член priv (тот, что в секции private объявлен базового класса) в классе derived будет приравнен к его public-членам и будет виден в дальнейшей иерархии классов?
3.Доступ к protected-членам имеется во всей иерархии классов (допустим base->derived1->derived3->derivedN, в этом самом N я могу использовать protected члены базового класса?)?
4. Правильно ли я понимаю, что в методах производного класса могу использовать методы базового класса?
прим:
Код
class base
{
public:
void method_base(void){cout << "Fuck it!";};
};
clase derived:public base
{
public:
void show_fuck_it(void){method_base();};
};
{
public:
void method_base(void){cout << "Fuck it!";};
};
clase derived:public base
{
public:
void show_fuck_it(void){method_base();};
};