【发布时间】:2015-04-25 12:49:55
【问题描述】:
我看到和学到的关于封装的知识是,我们可以将数据成员作为私有成员,而成员函数是公共的。
但 C++ Primer 将封装定义为:
实现与接口分离;封装隐藏 一个类型的实现细节。在 C++ 中,通过将实现放在类的私有部分来强制执行封装。
最后一行是令人困惑的部分:将实现放在类的私有部分。通过实现,他的意思是函数定义,对吗?我的意思是,我从未见过一个函数声明为公共(作为原型)并在私有中实现。
我真的很困惑。请用一个简单的例子解释他想说什么。
【问题讨论】:
-
也许他在谈论 pimpl 模式c2.com/cgi/wiki?PimplIdiom
-
不,“实现”是指不属于公共接口但用于实现其行为的类成员(数据和函数)。封装它们的一种方法是将它们设为私有。
标签: c++