c++数据抽象

21 篇文章 0 订阅
11 篇文章 0 订阅

什么叫数据抽象?

比如说一架飞机,我们知道它会飞,但是怎么飞、飞行原理我们并不清楚。
因此,我们可以说飞机把它的内部实现和外部接口分离开了,我们无需知道它的内部实现原理,直接通过它的外部接口(机票)就可以登机起飞。

就 C++ 编程而言,C++ 类为数据抽象提供了可能。它们向外界提供了大量用于操作对象数据的公共方法,也就是说,外界实际上并不清楚类的内部实现。
例如,您的程序可以调用abs() 函数,而不需要知道函数中区整数绝对值所用到的算法。实际上,函数的底层实现会因库的版本不同而有所差异,只要接口不变,函数调用就可以照常工作。

在 C++ 中,我们使用类来定义我们自己的抽象数据类型(ADT)。您可以使用类 iostream 的 cout 对象来输出数据到标准输出,如下所示:

#include<iostream>
using namespace std;
int main() {
	cout << "Hello EIDorado" << endl;
	return 0;
}

我们并不知道也不需要知道cout的工作原理,只需要知道cout这个公共接口就可以使用,底层实现不需要去关注太多。

数据抽象的好处

类的内部受到保护,不会因无意的用户级错误导致对象状态受损。
类实现可能随着时间的推移而发生变化,以便应对不断变化的需求,或者应对那些要求不改变用户级代码的错误报告。

下面我们来看一下抽象类型怎么写

#include <iostream>
using namespace std;
 
class Adder{
   public:
      // 构造函数
      Adder(int i = 0)
      {
        total = i;
      }
      // 对外的接口
      void addNum(int number)
      {
          total += number;
      }
      // 对外的接口
      int getTotal()
      {
          return total;
      };
   private:
      // 用户并不清楚有total这块内存,这是用户不需要了解的,但又是类能正常工作所必需的。
      int total;
};
int main( )
{
   Adder a;
   
   a.addNum(10);
   a.addNum(20);
   a.addNum(30);
 
   cout << "Total " << a.getTotal() <<endl;
   return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值