考虑下面的示例代码:
#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()时, display() 访问类 Aob1.display()
的私有数据成员。我明白这一点。b
但是当我调用 display usingob2.display
时,b
display() 访问哪个?是b
A级的还是b
B级的?请解释为什么它访问class A's b
或class B's b