-1

今天,我在搜索抽象,我得到了这个例子......这个程序如何实现抽象的概念,还请详细说明什么是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;
}
4

3 回答 3

1

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

引用自维基百科:

数据抽象强制将数据类型的抽象属性与其实现的具体细节明确分离。

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

于 2013-02-17T14:50:28.570 回答
0

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

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

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

于 2013-02-17T15:03:49.793 回答
0

您正在访问public执行任务的方法,但不知道它们是如何private members受到影响的。这不过是abstraction

你在移动你的手,却不知道你的思想如何指示它移动。

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

Data Encapsulation:绑定dataobject在你的情况下,你绑定了totalwith object a。所以a未经许可是不能访问的。

于 2013-02-17T14:51:59.727 回答