C++OOP对象和类的详细讲解

C++OOP对象和类的详细讲解,博智网带你了解详细信息 。
目录

  • C++OOP对象和类
    • 1.预备知识
    • 2.抽象和类
      • 2.1 数据抽象
      • 2.2 类
      • 2.3 接口
    • 3.C++中的类和对象
      • 3.1 C++类的定义
      • 3.2 C++对象的定义
      • 3.3 C++访问数据成员
      • 3.4 C++类成员函数
  • 总结

    C++OOP对象和类本文将从入门的角度介绍C++OOP中的类和对象,事实上C++的类和对象远远不止本文所介绍的内容 。
    不过如果你感兴趣,我会把其他的内容逐一通过文章的形式介绍给你 。
    1.预备知识面向对象编程(OOP)是一种特殊的、设计程序的概念性方法,C++通过一些特性改进了C语言,使得应用这种方法更加容易 。下面是最重要的OOP特性:
    • 抽象
    • 封装和数据隐藏
    • 多态
    • 继承
    • 代码可重用性
    为了实现上述特性并把它们结合在一起,C++提供了类和对象 。
    我们首先来讨论一下OOP 。虽然C++偶尔讨论了OOP,但更多的还是诸如C、Pascal和BASIC等语言的标准过程性方法 。下面看一个例子,它将揭示OOP的核心观点与过程性编程的差别 。
    一般来说一场球赛的进球数量可以通过计算机来辅助计算例如每个选手的投球次数、命中率等等 。如果这些由C++等利用OOP编写程序,我们可以通过在一个函数中调用另一个函数,可以通过构建一个球队的类,或者建立一个球员的对象,通过调用函数的方式完成计算 。而反观过程性编程,程序员需要用函数调用另一个函数来计算,用数组或变量等记录结果等等 。
    总之,如果采用过程性编程,首先考虑的是遵循的步骤,然后再考虑这些数据 。
    对于OOP程序员,我们需要跟踪的就是球员,需要用一个对象表示整个选手的各个方面的表现 。
    采用OOP,首先要从用户的角度考虑对象——描述对象所需的数据以及描述用户与数据交互所需的操作 。完成接口描述后,需要确定如何实现接口和数据存储 。最后,使用新的设计方案创建出程序 。
    2.抽象和类生活中充满了复杂性,处理它们的方法就是简化和抽象 。
    2.1 数据抽象数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节 。
    数据抽象是一种依赖于接口和实现分离的编程(设计)技术 。
    让我们举一个现实生活中的真实例子,比如一台电视机,您可以打开和关闭、切换频道、调整音量、添加外部组件(如喇叭、录像机、DVD 播放器),但是您不知道它的内部实现细节,也就是说,您并不知道它是如何通过缆线接收信号,如何转换信号,并最终显示在屏幕上 。
    因此,我们可以说电视把它的内部实现和外部接口分离开了,您无需知道它的内部实现原理,直接通过它的外部接口(比如电源按钮、遥控器、声量控制器)就可以操控电视 。
    现在,让我们言归正传,就 C++ 编程而言,C++ 类为数据抽象提供了可能 。它们向外界提供了大量用于操作对象数据的公共方法,也就是说,外界实际上并不清楚类的内部实现 。
    例如,您的程序可以调用sort()函数,而不需要知道函数中排序数据所用到的算法 。实际上,函数排序的底层实现会因库的版本不同而有所差异,只要接口不变,函数调用就可以照常工作 。
    2.2 类类是一种将抽象转换为用户定义的C++工具,它将数据表示和操控数据的方法组合成一个整洁的包 。下面我们来看看一个表示股票的类 。
    首先我们需要将股票的一股表示为一个基本单元,定义一个表示一股股票的类,然而,这意味着需要100个股票的单元才能构成100股 。这将使工作量超标 。相反,我们可以通过将某人持有的某种股票作为一个基本单元,数据表示中包含他所持有的股票数量 。
    具体地说,我们可以将执行的操作简化和限制为:
    • 获得股票
    • 增持
    • 卖出股票
    • 更新股票价格
    • 显示持股信息
    根据上述操作的需求来定义stock类的公共接口,我们可以通过调用接口来完成这些操作 。而对于需要储存的信息,我们将它再次简化,我们最终将储存以下信息:
    • 公司名称
    • 所持股票数量
    • 每股的价格
    • 股票总值

    2.3 接口接口是一个共享的框架,共两个系统交互时使用 。例如张三想要把银行里存的钱取走,需要在银行或者ATM机取走他在银行系统里存的钱 。