这个程序是如何实现抽象概念的

How this program implements the concept of abstraction?

本文关键字:实现 抽象概念 何实现 程序      更新时间:2023-10-16

今天,我在搜索抽象,得到了这个例子。。。。这个程序是如何实现抽象概念的,还请详细说明什么是c++中的抽象

 #include <iostream>
using namespace std;
class Adder{
   public:
      // constructor
      Adder(int i = 0)
  {
    total = i;
  }
  // interface to outside world
  void addNum(int number)
  {
      total += number;
  }
  // interface to outside world
  int getTotal()
  {
      return total;
  };
  private:
  // hidden data from outside world
  int total;
};
int main( )
{
Adder a;
a.addNum(10);
a.addNum(20);
a.addNum(30);
cout << "Total " << a.getTotal() <<endl;
return 0;
}

它应该被称为数据抽象,它是OOP的关键来源(不限于C++)。

引用自维基百科:

数据抽象强化了抽象之间的清晰分离数据类型的性质及其具体细节实施

在您的示例中,Adder是加法器的数据抽象,它有两个接口:addNumgetTotal。这种抽象隐藏(或封装)私有数据(在本例中为total),只公开其内核行为:添加一个数字并返回当前总和。

您正在访问用于执行任务的public方法,而不知道private members会受到怎样的影响。这不过是CCD_ 7。

你在移动你的手,却不知道你的大脑是如何指示它移动的。

Data Abstraction:隐藏不必要的细节。在您的情况下,您隐藏了total的计算方式。只要调用函数,任务就完成了。

Data Encapsulation:将dataobject绑定。在您的情况下,您将totalobject a绑定。因此未经CCD_ 15许可是不可访问的。

只考虑构造函数和函数原型:

class Adder {
  Adder(int i);
  void AddNum(int num);
  int getTotal();
};

实现是隐藏的、抽象的,只剩下原型。