C++继承专题
继承基本概念
继承概念
C++中的类成员访问级别(public、private、protected)
思考:如何恰当的使用public,protected和private为成员声明访问级别?
1、需要被外界访问的成员直接设置为public
2、只能在当前类中访问的成员设置为private
3、只能在当前类和子类中访问的成员设置为protected,protected成员的访问权限介于public和private之间。
|
父类成员访问级别 |
||||
|
继 承 方 式 |
|
public |
proteced |
private |
|
public |
public |
proteced |
private |
|
|
proteced |
proteced |
proteced |
private |
|
|
private |
private |
private |
private |
|
三看
C++中的继承方式(public、private、protected)会影响子类的对外访问属性
判断某一句话,能否被访问
1)看调用语句,这句话写在子类的内部、外部
2)看子类如何从父类继承(public、private、protected)
3)看父类中的访问级别(public、private、protected)
继承模型图

子类由两部分构成,一部分是继承的父类,另一部分是自己新增加的元素,访问父类元素的方式[子类对象].[父类名]::[父类元素]
构造时,先构造父类部分,再构造自身部分(先构造a,b,,再构造c,d,e)
析构时,先析构自身部分,再析构父类部分.(先析构c,d,e,再析构a,b)
继承中的同名成员变量处理方法
class A { public: int a; int b; void printfB() { cout<<"我是父类的B"<<b<<endl; } void print() { cout<<"我是父类"<<endl; } protected: private: }; class B : public A { public: int b; int c; void print() { cout<<"我是子类"<<endl; } protected: private: }; void main() { B b1; b1.b = 10; b1.A::b = 11; b1.printfB(); b1.print(); b1.A ::print(); b1.B::print(); system("pause"); }

浙公网安备 33010602011771号