#include <iostream>
#include "string"
using namespace std;
class Base
{
public:
int m_A;
int m_B = 20;
Base()
{
m_A = 100;
cout <<"base构造函数" <<endl;
}
~Base()
{
cout <<"base析构函数" <<endl;
}
void func()
{
cout << "base--func()" <<endl;
}
};
class Son :public Base
{
public:
int m_A;
Son()
{
m_A = 200;
cout <<"son构造函数" <<endl;
}
~Son()
{
cout <<"son析构函数" <<endl;
}
void func()
{
cout << "Son--func()" <<endl;
}
};
void test01()
{
//1.继承中的析构和构造函数
Son son;
//2 父类子类同名变量的访问
cout << "son.m_A == "<<son.m_A<<endl; //当子类和父类出现同名变量,默认访问子类变量
cout << "son.Base::m_A == "<< son.Base::m_A <<endl; //当子类和父类出现同名变量,加上作用域访问父类变量
cout << "son.m_A == "<<son.m_B<<endl; //访问父类成员变量
//3 父类子类同名函数访问
son.func(); //当子类和父类出现同名函数,默认访问子类函数
son.Base::func(); //当子类和父类出现同名函数,加上作用域访问父类函数
}
int main(){
test01();
return 0;
}