面向对象
面向对象的三个基本概念是继承,多态,动态绑定。
protected成员
1像 private 成员一样,protected 成员不能被类的用户访问。
2像 public 成员一样,protected 成员可被该类的派生类访问。
3派生类只能通过派生类对象访问其基类的 protected 成员,派生类对其基类类型对象的 protected 成员没有特殊访问权限。
名字查找与集成
函数调用遵循以下四个步骤:
1首先确定进行函数调用的对象、引用或指针的静态类型。
2在该类中查找函数,如果找不到,就在直接基类中查找,如此循着类的继承链往上找,直到找到该函数或者查找完最后一个类。如果不能在类或其相关基类中找到该名字,则调用是错误的。
3一旦找到了该名字,就进行常规类型检查,查看如果给定找到的定义,该函数调用是否合法。
4 假定函数调用合法,编译器就生成代码。如果函数是虚函数且通过引用或指针调用,则编译器生成代码以确定根据对象的动态类型运行哪个函数版本,否则,编译器生成代码直接调用函数。
(以上内容也就是了虚函数,解释了多态)
纯虚函数
含有(或继承)一个或多个纯虚函数的类是抽象基类。除了作为抽象基类的派生类的对象的组成部分,不能创建抽象类型的对象。
容器与继承
因为派生类对象在赋值给基类对象时会被“切掉”,所以容器与通过继承相关的类型不能很好地融合
句柄
储存和管理基类指针。