在我的子类中,我通过在我的子类中重新定义它来隐藏一个超类成员变量或类型,并想知道使用子类隐藏的成员变量的函数调用会发生什么。举个例子:
class A {
class X {
int x;
};
X getX() {
return x_;
}
protected:
X x_;
public:
vector<X> x_vector_;
}
class B : public A {
class x {
int x;
int y;
};
protected:
X x_;
}
当我执行以下操作时会发生什么:
B b;
b.getX();
Q1:这会返回A::x_
还是B::x_
??
怎么样:
B b;
b.x_vector_;
Q2: b.x_vector_ 是 typevector<A::X>
还是vector<B::X>
??