// 继承中同名成员的处理方法
#include <iostream>
#include <cstring>
#include <cstdlib>

using namespace std;

class A
{
public:
    int x;
    A(int x) : x(x) {}
    void show()
    {
        cout << "x = " << x << endl;
    }
};

class B : public A
{
private:
    int x;

public:
    // B(int x) : A(x)
    // {
    //     // 就近原则: this->x 是 B 类的，不是父类 A 的
    //     this->x = x + 20;
    // }
    B(int x) : A(x), x(x + 20)
    {
    }

    void showX()
    {
        cout << "x = " << x << endl;
    }
};

int main()
{
    B b1(10);
    b1.show();  // 从 A 类继承过来的方法，打印的是 A 类的 x
    b1.showX(); // B 类自己的，打印自己的 a
    return 0;
}
