首先需要理解:
- 成员变量同名覆盖:子类仅仅是继承来的那个成员变量,而并不改变原来父类中的变量。
- 成员方法同名覆盖:子类对父类的成员方法覆盖,必须函数名,函数参数,函数返回值 完全一致。
- 在子类中通过作用域分辨符::进行同名成员区分(在子类中使用父类的同名成员,必须显式地使用类名限定符)
#include <iostream>
using namespace std;
class A
{
public:
int a;
int b;
public:
void get()
{
cout << "父类的b= " << this->b << endl;
}
void print()
{
cout << "AAAA" <<endl;
}
};
class B :public A
{
public:
int b;
int c;
public:
void get_child()
{
cout << "子类的b= " << this->b << endl;
}
void print()
{
cout << "BBBB" <<endl;
}
};
int main()
{
B b1;
b1.b = 1; //默认调用的子类的成员变量b
b1.get_child();
b1.A::b = 3;//通过作用域分辨符::,指明是父类的成员变量
b1.get();
b1.print();//默认调用子类的成员方法
b1.A::print();
system("pause");
return 0;
}