码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象程序设计

时间:2017-06-16 19:21:58      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:思想   font   没有   多态性   内存泄漏   说明   自定义   使用   内存   

OOP概述

1.面向对象程序设计的核心思想数据抽象(封装)、继承和动态绑定(多态性)。

  通过数据抽象,我们可以将类的接口与实现分离;使用继承,可以定义相似的类型并对其相似关系建模;使用动态绑定,可以在一定程度上忽略相似类型的区别,而以统一的方式使用它们的对象。

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

2.虚函数意义:对于某些函数,基类希望它的派生类各自定义适合自己的版本,此时基类就将这些函数声明成虚函数(virtural)。

  任意非static成员都可以为虚成员

3.动态绑定当我们使用基类引用(或指针)调用一个虚函数时,将发生动态绑定。

定义基类

1.基类通常都应该定义一个虚析构函数,即使该函数不执行任何实际操作。这保证了在任何情况下,不会出现由于析构函数未被调用而导致的内存泄漏

class Quote
{
public:
    ...
    virtual ~Quote()=default;   //虚析构函数
}

2.成员函数与继承

  基类必须将两种成员函数区分开:一种是基类希望其派生类进行覆盖的函数,此类函数声明为虚函数;另一种是希望其派生类直接继承而不要改变的函数,非虚成员函数。

  虚函数的解析过程发生在运行时(直到运行时才会决定到底执行哪个版本);;对于非虚成员函数,其解析过程发生在编译时而非运行时(在编译时进行绑定)。

3.访问控制与继承

  派生访问说明符对于派生类的成员(及友元)能否访问其直接基类的没有影响。对基类成员的访问权限只与基类中的访问说明符有关。

  派生类能访问基类的public成员,而不能访问private成员。

  而对于protected成员:

  1)和private成员一样,protected成员对于类的用户来说是不可访问的。

  2)和public成员类似,proected成员对于派生类的成员和友元来说是可访问的。

 

面向对象程序设计

标签:思想   font   没有   多态性   内存泄漏   说明   自定义   使用   内存   

原文地址:http://www.cnblogs.com/cygalaxy/p/7027792.html

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