Look at this example
class base {
public:
int m1;
base() {
m1 = 5;
}
};
class der: public base {
public:
int m1;
der() {
m1 = 6;
}
};
int main() {
der d;
cout << d.m1;
return 0;
}
ここでオブジェクトdのサイズは2 m1
(1つはベースクラス、もう1つは派生クラス)に割り当てられた8 byte
です。 d.m1
を解決するメカニズムは何ですか?基本クラスと派生クラスの両方に同じメンバ変数がある場合、コンパイラがどのメンバを呼び出すかを解決する方法は?
そして、あなたはおそらく、これを行うべきではありません。 –