继承的访问限定符
继承中有好几种的继承方式,最常用的是public继承
私有,保护,公有这三种继承,可以参照上面的继承表
继承中的作用域
1. 在继承体系中基类和派生类都有独立的作用域。
2. 子类和父类中有同名成员,子类成员将屏蔽父类对同名成员的直接访问,这种情况叫隐藏,
也叫重定义。(在子类成员函数中,可以使用 基类::基类成员 显示访问)
3. 需要注意的是如果是成员函数的隐藏,只需要函数名相同就构成隐藏。
4.最好不用定义同名的成员
class A {
public:
string _name = "张三";
};
class B : public A {
public:
string _name = "李四";
};
int main() {
B b;
cout << b._name << endl;
return 0;
}
可以看到输出的是李四,构成了隐藏
int main() {
B b;
cout << b._name << endl;
cout << b.A::_name << endl;
return 0;
}
通过显示调用就可以访问,函数也是同理!
但还是不建议定义同名成员!
子类对象赋值给父类对象/指针/引用
class A {
public:
int _a;
};
class B : public A{
public:
int _b