码迷,mamicode.com
首页 > 编程语言 > 详细

《C++ Primer》读书笔记之第15章:面向对象编程

时间:2015-12-27 14:36:55      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

一、面向对象概述

1. 面向对象的三个基本特性:封装、继承和多态。

2. 封装指把隐藏对象的实现细节,仅对外提供接口,从而达到接口与实现分离的效果。封装的好处:一是提高数据的安全性,用户只能使用对象提供的接口,而不能随意修改对象的数据。试想如果用户能够获取权限访问对象的所有实现细节并进行修改,那对象的安全性将无法保证。这和用外壳把电路板封装起来,以免用户随便拆卸电子器件的道理是类似的。二是方便使用。用户只需知道接口而不需了解内部细节便可使用。

3. 继承指新对象可以直接使用现有对象的功能,并且可以在此基础上进行拓展,从而避免“重复造轮子”。

4. 多态指某个接口的使用者可能是原有对象也可能是新对象,这个要在实际运行时才能确定,而在编译时无法确定。比如:定义一个函数void func(const C& c),其中C是基类对象,假设类D继承类C,则函数func的实际输入参数可能是C也可能是D,视实际运行情况而定。

5. 封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是——代码重用。而多态则是为了实现另一个目的——接口重用!

二、基类与派生类的定义

1. 基类必须定义一个虚虚构函数,即使已知其不会被使用。

2. 除构造函数外的所有非静态函数均可定义为虚函数。

3. 派生类可以访问基类的public成员和protected成员,但不能访问基类的private成员。

4. 定义派生类时,应该在紧跟类名的“:”后面、“{”前面声明所继承的每一个基类的名字以及继承方式(public, protected或private)。比如:class Derived : public Base1, private Base2 {};

5. 派生类可以只对基类的部分而非全部虚函数进行覆盖(override)。

6. 派生类可以使用“override”修饰符显式覆盖基类的虚函数,“override”应写在虚函数的参数列表后面。如果虚函数是const或reference函数,则把override写在const或&的后面。

 

《C++ Primer》读书笔记之第15章:面向对象编程

标签:

原文地址:http://www.cnblogs.com/wuhualong/p/ReadingNote_C_plus_plus_Primer_Chap15.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!