c++的继承与多态

来源:互联网 发布:mac单机小游戏 编辑:程序博客网 时间:2024/06/06 03:31

继承与多态

  继承的本质:代码的复用


1)派生类的内存布局,都继承了基类的什么。



2)继承来的东西的访问限定: 


3)派生类对象的构造顺序


4)派生类和基类同名成员方法的关系:

 重载:作用域相同,函数名相同,参数列表不同的函数。

 隐藏:继承结构中,派生类隐藏了与基类同名的函数。(隐藏基类,优先调用自己的)

 覆盖:基类有与派生类同名的函数,返回值相同,参数列表相同。并且基类的函数为虚函数。则基类的虚函数会覆盖派生类的函数。

5)基类对象和派生类对象能否互相赋值和引用

Base b;  Derive d;  

 基类对象---》派生类对象   例:d=b;  //error因为派生类对象包含基类成员和派生类成员。会造成派生类的成员部分没有赋值

 派生类对象---》基类对象   例:b=d; //正确  因为派生类对象包含了基类成员的那部分,则可以赋值。     (编译器默认的支持自下向上的转换)

 基类对象的指针/引用----》派生类对象  :Base *pa=&d; //正确 但是指针接引用不能访问派生类的成员。因为指针的类型为Base*

 派生类对象的指针/引用----》基类对象   例:Derive *pb=&b;//error 


 6)虚函数和多态

 

 7)什么情况下产生多态的调用:使用指针和引用指向不同于该指针类型的对象的时候。

  

 8)纯虚函数和抽象类

 

  抽象类:拥有纯虚函数的类为抽象类,抽象类不能定义对象,可以定义指针/引用。







       

原创粉丝点击