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