第十五章 面向对象编程
2012-09-23 21:37
197 查看
1.C++ 中的函数调用默认不使用动态绑定。要触发动态绑定,满足两个条件:第一,只有指定为虚函数的成员函数才能进行动态绑定,成员函数默认为非虚函数,非虚函数不进行动态绑定;第二,必须通过基类类型的引用或指针进行函数调用。要理解这一要求,需要理解在使用继承层次中某一类型的对象的引用或指针时会发生什么。
2.继承的权限:
1.如果是公用继承,基类成员保持自己的访问级别:基类的 public 成员为派生类的 public 成员,基类的 protected 成员为派生类的 protected成员。
2.如果是受保护继承,基类的 public 和 protected 成员在派生类中为protected 成员。
3.如果是私有继承,基类的的所有成员在派生类中为 private 成员。
3.接口继承与实现继承:
1.public 派生类继承基类的接口,它具有与基类相同的接口。设计良好的类层次中,public 派生类的对象可以用在任何需要基类对象的地方。
2.使用 private 或 protected 派生的类不继承基类的接口,相反,这些派生通常被称为实现继承。派生类在实现中使用被继承但继承基类的部分并未成为其接口的一部分。
4.友元关系不能继承。
5.如果基类定义 static 成员,则整个继承层次中只有一个这样的成员。
6.派生类构造函数通过将基类包含在构造函数初始化列表中来间接初始化继承成员。
7.一个类只能初始化自己的直接基类。
8.虚析构函数:
自动调用基类部分的析构函数对基类的设计有重要影响。
9.在函数形参表后面写上 = 0 以指定纯虚函数:
将函数定义为纯虚能够说明,该函数为后代类型提供了可以覆盖的接口,但是这个类中的版本决不会调用。重要的是,用户将不能创建 Disc_item 类型的对象。
10.将派生类对象复制到基类对象时,派生类对象将被切掉。
11.对句柄类的理解:
句柄类就像c语言的链表,链表中的每个成员里都包含了下一个成员的地址,句柄类按照每一种需求把每个成员组织在各个层次中,当对句柄类进行操作的时候,句柄类会递归的调用这些成员,来完成指定的任务。有点晕。
2.继承的权限:
1.如果是公用继承,基类成员保持自己的访问级别:基类的 public 成员为派生类的 public 成员,基类的 protected 成员为派生类的 protected成员。
2.如果是受保护继承,基类的 public 和 protected 成员在派生类中为protected 成员。
3.如果是私有继承,基类的的所有成员在派生类中为 private 成员。
3.接口继承与实现继承:
1.public 派生类继承基类的接口,它具有与基类相同的接口。设计良好的类层次中,public 派生类的对象可以用在任何需要基类对象的地方。
2.使用 private 或 protected 派生的类不继承基类的接口,相反,这些派生通常被称为实现继承。派生类在实现中使用被继承但继承基类的部分并未成为其接口的一部分。
4.友元关系不能继承。
5.如果基类定义 static 成员,则整个继承层次中只有一个这样的成员。
6.派生类构造函数通过将基类包含在构造函数初始化列表中来间接初始化继承成员。
7.一个类只能初始化自己的直接基类。
8.虚析构函数:
自动调用基类部分的析构函数对基类的设计有重要影响。
9.在函数形参表后面写上 = 0 以指定纯虚函数:
将函数定义为纯虚能够说明,该函数为后代类型提供了可以覆盖的接口,但是这个类中的版本决不会调用。重要的是,用户将不能创建 Disc_item 类型的对象。
10.将派生类对象复制到基类对象时,派生类对象将被切掉。
11.对句柄类的理解:
句柄类就像c语言的链表,链表中的每个成员里都包含了下一个成员的地址,句柄类按照每一种需求把每个成员组织在各个层次中,当对句柄类进行操作的时候,句柄类会递归的调用这些成员,来完成指定的任务。有点晕。
相关文章推荐
- C++ Primer 4 第十五章 面向对象编程
- 第十五章 面向对象编程
- C++ Primer 第十五章 面向对象编程
- 第十五章:面向对象编程
- 第十五章 面向对象编程(一)
- C++ Primer复习和学习笔记 第十五章 面向对象编程
- 第十五章 面向对象编程(二)
- C++ Primer 第十五章 面向对象编程
- C++Primer学习笔记第十五章(15/18)类 面向对象编程
- c++Primer,第十五章,面向对象编程
- c++ primer读书笔记-第十五章 面向对象编程
- Java 面向对象编程--第十五章 集合(学习笔记)
- C++ Primer 【第四版】第十五章 面向对象编程
- ExtJS的面向对象编程(继承、重写)
- 编程思想┊从实例谈面向对象编程(OOP)、工厂模式和重构
- Javascript 面向对象编程(一):封装
- 浅谈你对面向对象编程的认识
- 面向对象编程其实很简单——Python 面向对象(初级篇)
- Javascript面向对象编程(三):非构造函数的继承
- 面向对象编程,类切换