Это единственный способ получить доступ к функции-члену базового класса с помощью оператора разрешения области.Но функции-члены имеют одинаковые имена display ().
#include<iostream>
using namespace std;
class person{
public:
int age;
void display() /////////// One member function same name
{
cout<<age;
}
};
class men:public person
{
public:
int height;
void display() ///////// Other member function same name
{
cout<<height;
person::display();
}
};
main()
{
men A;
A.age=25;
A.height=6;
cout<<"results is"<<endl;
A.display();
}
См. Этот 2-й код, две разные функции в базовом и производном классах display () и showdata (). Оба работают одинаковокак приведенный выше фрагмент кода.
#include<iostream>
using namespace std;
class person{
public:
int age;
void showdata() ////////////// One member function
{
cout<<age;
}
};
class men:public person
{
public:
int height;
void display() ////////// another member function
{
cout<<height;
person::showdata();
}
};
main()
{
men A;
A.age=25;
A.height=6;
cout<<"results is"<<endl;
A.display();
}
Какой из подходов является хорошим, который дает реальные преимущества наследования?мы должны использовать одинаковые именованные функции-члены в обоих классах (базовый и производный класс)?или мы должны использовать разные именованные функции-члены в обоих классах (базовый и производный).
И я знаю, что необходимо использовать функцию-член базы и функцию-член производного класса, потому что в соответствии с наследованием, производный класс также содержит все характеристики базового класса, поэтому он также будет содержать функцию-член базового класса.