У меня есть следующие объявления класса:C++ Наследование функций с таким же именем
class human
{
public:
void msg(){cout<<"I am human\n";}
};
class John:public human
{
public:
void msg(){cout<<"I am a John\n";}
};
Как видно классу John
и human
оба имеют функцию msg()
. Очевидно, класс John
наследует ресурсы от human
. Теперь, когда я создаю объект производного класса и вызвать msg()
:
John a;
a.msg();
Выход:
Я Джон
Но оленья кожа John
наследует msg()
от human
?
Также существует способ доступа к msg()
из human
с использованием объекта производного класса?
EDIT:
Йуп вызова функции как и поможет мне
a.human::msg()
Другой вопрос:
Кроме того, если я изменить класс следующим образом:
class human
{
protected:
void msg(){cout<<"I am human\n";}
};
class John:public human
{
public:
void msg(){cout<<"I am a John\n";}
};
Теперь, как я могу получить доступ к msg()
от human
.