c++ primer阅读笔记-15章-1
2014-04-14 21:43
155 查看
1、面向对象编程基于三个基本概念:数据抽象、继承和动态绑定。在 C++ 中,用类进行数据抽象,用类派生从一个类继承另一个:派生类继承基类的成员。动态绑定使编译器能够在运行时决定是使用基类中定义的函数还是派生类中定义的函数。
15.1. 面向对象编程:概述
1、面向对象编程的关键思想是多态性(polymorphism)。之所以称通过继承而相关联的类型为多态类型,是因为在许多情况下可以互换地使用派生类型或基类型的“许多形态”。正如我们将看到的,在 C++ 中,多态性仅用于通过继承而相关联的类型的引用或指针。
继承
1、通过继承我们能够定义这样的类,它们对类型之间的关系建模,共享公共的东西,仅仅特化本质上不同的东西。派生类(derived class)能够继承基类(base class)定义的成员,派生类可以无须改变而使用那些与派生类型具体特性不相关的操作,派生类可以重定义那些与派生类型相关的成员函数,将函数特化,考虑派生类型的特性。最后,除了从基类继承的成员之外,派生类还可以定义更多的成员。
2、在 C++ 中,基类必须指出希望派生类重写哪些函数,定义为 virtual 的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数。
动态绑定
1、在 C++ 中,通过基类的引用(或指针)调用虚函数时,发生动态绑定。引用(或指针)既可以指向基类对象也可以指向派生类对象,这一事实是动态绑定的关键。用引用(或指针)调用的虚函数在运行时确定,被调用的函数是引用(或指针)所指对象的实际类型所定义的。
15.1. 面向对象编程:概述
1、面向对象编程的关键思想是多态性(polymorphism)。之所以称通过继承而相关联的类型为多态类型,是因为在许多情况下可以互换地使用派生类型或基类型的“许多形态”。正如我们将看到的,在 C++ 中,多态性仅用于通过继承而相关联的类型的引用或指针。
继承
1、通过继承我们能够定义这样的类,它们对类型之间的关系建模,共享公共的东西,仅仅特化本质上不同的东西。派生类(derived class)能够继承基类(base class)定义的成员,派生类可以无须改变而使用那些与派生类型具体特性不相关的操作,派生类可以重定义那些与派生类型相关的成员函数,将函数特化,考虑派生类型的特性。最后,除了从基类继承的成员之外,派生类还可以定义更多的成员。
2、在 C++ 中,基类必须指出希望派生类重写哪些函数,定义为 virtual 的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数。
动态绑定
1、在 C++ 中,通过基类的引用(或指针)调用虚函数时,发生动态绑定。引用(或指针)既可以指向基类对象也可以指向派生类对象,这一事实是动态绑定的关键。用引用(或指针)调用的虚函数在运行时确定,被调用的函数是引用(或指针)所指对象的实际类型所定义的。
相关文章推荐
- c++ primer阅读笔记-15章-6
- c++ primer阅读笔记-15章-3
- c++ primer阅读笔记-15章-4
- c++ primer阅读笔记-15章-2
- c++ primer阅读笔记-15章-7
- c++ primer阅读笔记-15章-5
- C++ Primer 第二遍阅读笔记(第一章)
- 《C++ primer》英文第五版阅读笔记(十一)——Iterators
- 《C++ primer》英文第五版阅读笔记(十六)——赋值运算符
- C++ primer第二次阅读学习笔记(第1、2章)
- C++ primer第二次阅读学习笔记(第11章:泛型算法)
- C++ primer第二次阅读学习笔记(第17章:用于大型程序的工具:多重继承与虚继承) .
- c++ primer阅读笔记-12章-4
- c++ primer阅读笔记-13章-2
- C++ primer 习题笔记第13~15章
- 《C++ primer》英文第五版阅读笔记(二十五)——函数基本知识
- c++ primer阅读笔记-12章-2
- C++ primer第二次阅读学习笔记(第11章:泛型算法)
- C++ Primer 第二遍阅读笔记(第十章)
- c++ primer阅读笔记-13章-3