Рассмотрим пример кода ниже:
#include <iostream>
using namespace std;
class A
{
private:
static int a;
int b;
protected:
public:
A() : b(0) {}
void modify()
{
a++;
b++;
}
void display()
{
cout << a <<"\n";
cout << b <<"\n";
}
};
int A::a=0;
class B : public A {
private:
int b;
public:
B(): b(5)
{
}
};
int main()
{
A ob1;
B ob2;
ob1.display();
ob2.display();
return 0;
}
В приведенном выше коде class A
имеет частный элемент данных b
, а class B
также имеет закрытый элемент данных b
. Функция display()
используется для отображения элементов данных. Когда я вызываю display() с помощью ob1.display()
, display() обращается к частному члену данных b
класса A. Я это понимаю. Но когда я вызываю display с помощью ob2.display
, к какому b
обращается display()? Это b
класса А или b
класса Б? Пожалуйста, объясните, почему он обращается к class A's b
или class B's b