C++ Primer 笔记15.面向对象程序设计

概述

动态绑定:

 

 

定义基类和派生类

派生类对象概念模型:

允许将基类指针或引用绑定到派生类对象的基类部分上

派生类的构造函数:

将某个类用作基类,则该类必须已经定义

final关键字阻止继承: 

静态类型:编译时已知的类型

动态类型:表示内存中的对象类型,运行时才知道类型

  • 不存在类型转换:

当基类的构造函数传递一个派生类对象时,构造函数只处理基类自己的成员

 

虚函数

当使用指针或引用调用虚函数时执行动态绑定(运行时解析),否则都在编译时进行解析

虚函数不能为构造函数或者静态函数

  • 派生类的虚函数

基类申明处添加virtual关键词,派生类隐式地也是虚函数

  • override:

override关键字:显示注明使用哪个成员函数改写基类的虚函数

只有虚函数能够添加override说明符

final不允许基类函数进行覆盖:

  • 利用作用域阻止虚函数的动态绑定:

 

 

抽象基类

  • 纯虚函数:

含有纯虚函数的类是抽象类,负责定义接口

抽象类不能创建对象

 

 

访问控制与继承

  • 友元与继承:

友元关系不能被继承

如果Pal是基类的友元,它可以访问基类对象内嵌在其派生类对象中的部分

  • 改变可访问性

  • 默认的继承保护级别:

struct:public

class:private

 

 

继承中的类作用域

编译时的名字查找:

派生类通过基类的作用域查找被覆盖的基类成员:

 

 

构造函数与拷贝控制

  • 虚析构函数:

基类通常定义虚析构函数

  • 构造函数:

先运行基类的构造函数,后运行派生类的构造函数

继承基类的构造函数:

  • 析构函数:

先运行派生类的析构函数,后运行基类的析构函数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值