c - 用结构封装

标签 c encapsulation

我对封装的概念有疑问。

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/

相关文章:

c - neighbors.c程序调试(多维数组)

用C连接Postgresql

vba - 为什么 VBA Me 关键字不能访问自己模块中的私有(private)过程?

c++ - 为什么 Google 在成员变量之后命名访问器和修改器?

JavaScript 封装/JQuery

c++ - 为什么 C++ 允许通过指针访问类的私有(private)成员?

c - 缺少一些简单的东西,C 程序不会接受答案?

java - 我可以在不编译的情况下获得 C/C++/Java 代码的 XML AST 吗?

从两个不同的 C DLL 调用同名的两个函数

javascript - 封装在 Javascript 中