私のサブクラスでは、サブクラスでそれを再定義することによってスーパークラスのメンバー変数または型を隠しており、サブクラスによって隠されているメンバー変数を使用する関数呼び出しがどうなるか疑問に思っています。例として:
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_ はタイプvector<A::X>
ですかvector<B::X>
??