我对封装的概念有疑问。
C语言不也是用'struct
'数据类型做封装吗?
结构体中的数据变量和函数只能被结构体变量调用。并且系统中没有其他变量。不是数据隐藏吗?
我试图将这个概念联系起来以理解 C++ 封装。
最佳答案
在 C 中实际上只存在结构的“部分隐藏”。您可以查看这篇文章以获得更详细的解释:
Is there any workaround for making a structure member somehow 'private' in C?
不过,C++中的封装比较类似。您不能从客户端代码中完全隐藏所有数据成员(即使它们位于 private
部分)。这看似是对封装的“违反”,但这就是语言的本质。
关于c - 用结构封装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8620280/