【问题标题】:What is the exact difference between abstraction and encapsulation in C++ [duplicate]C ++中抽象和封装之间的确切区别是什么[重复]
【发布时间】:2018-11-04 10:53:21
【问题描述】:

C++:c++中抽象和封装的区别

我已经看到了有关该主题的一些答案,但我想通过与这些主题的理论概念相关的示例来了解它们的区别。

【问题讨论】:

  • 这两个不是语言中严格定义的术语,所以要求确切的区别并不是很有意义。
  • 问题的症结在于抽象是用代码(例如class bike等)对物理或现实世界对象进行建模的一种方式,封装 是一种保护数据不被用户操作的方法,除非通过您提供的访问器函数来控制访问(private 类数据成员提供了一种方便的封装形式)。除此之外,你会发现许多类似的解释。
  • @DavidC.Rankin 抽象不仅限于物理或现实世界的对象。甚至没有对象。
  • 我无意通过示例进行任何限制。我认为它更像是How abstraction and encapsulation differ? 中的猫、老太太和外科医生。可以从数据或流程的角度来看待它。这就是为什么我特别同意没有 exact 的定义。它基本上归结为“有人说什么被转载”的集合——而且有很多人在这个话题上被转载。

标签: c++ oop encapsulation abstraction


【解决方案1】:

抽象是通过在类(基本上也是结构)中使它们在 C++ 中私有和/或保护来隐藏元素,以便它们是安全的并且不能轻易地从类外部访问。

封装是将数据成员和方法(函数)组合成一个实体,称为。 封装和抽象是相互关联的。封装实现抽象。

【讨论】:

    猜你喜欢
    • 2017-03-30
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 2012-12-07
    • 2016-03-29
    • 2017-06-12
    • 1970-01-01
    • 2016-01-19
    相关资源
    最近更新 更多