- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Bob Martin 在这 video说“C 有完美的封装”。我不明白他为什么这么说......我知道我们可以在 .c 文件中分离实现并在 header .h 文件中声明接口(interface),但是没有什么能真正阻止我访问这样的实现细节:
主.c
#include <stdio.h>
#include "file1.h"
extern int x;
int main() {
printf("%d\n", x);
return 0;
}
文件1.c
int x = 5;
int getnum_file1() {
return x + 1;
}
文件1.h
int getnum_file1();
在这种情况下,main.c 可以访问 file1.c 中的实现细节。此代码还编译并执行了预期的结果。这是如何完美封装的??
最佳答案
一种确保封装的方法是将 x
声明为 static int x = 5;
,因此它不会从外部对象可见(即使使用 外部
).
显然,像x
这样的全局变量可以从另一个对象访问(通过链接器,通过您添加的extern
)。然而,这通常会导致“意大利面条式”代码,其中变量可以从任何地方访问和/或修改,因为没有适当的封装(C 或 C++ 确实提供了避免这种情况的有用方法)。
关于c - 鲍勃·马丁 : "C has perfect encapsulation" HOW?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53426936/
作为完美服务器端 swift 的新手,我找不到任何有助于基于角色的访问授权的包。在 Spring 有例如, .antMatchers("/homePage").access("hasRole('ROL
我在 [0; 范围内有许多整数; 2^63-1]。但是,只有 10^8 个整数。没有重复。完整列表在编译时已知,但它只是唯一的随机数。这些数字永远不会改变。 要显式存储一个整数,需要 8 个字节,并且
这个问题在这里已经有了答案: Justify text to fill a div (4 个答案) 关闭 8 年前。
我在不知道圆内内容(图像)的确切高度的情况下弄清楚如何制作一个完美的圆时遇到了问题。 我有多张图片(巨型标题),周围有圆圈,但里面的图片高度不同。我怎样才能让它看起来像一个完美的圆圈?为每一个。 下面
我正在制作一个游戏,我需要让我的物体发生碰撞,但是我有很多快速的小物体和正常的碰撞算法(形状的交集等)不起作用,因为位置+速度迭代推进了墙壁和实际上从来没有交叉路口。 所以我开始构建我自己的(也许它已
我在 Ubuntu Linux 服务器上托管了一个 Perfect-Swift 网络应用程序。我正在寻找一种从 Web 根目录读取图像文件并将其转换为 base64 兼容字符串以发送响应的方法。 最佳
题目地址:https://leetcode.com/problems/perfect-number/#/descriptionopen in new window 题目描述 Wedefine th
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
让我澄清一下,我并不是在说一种能够压缩任何给定源 Material 的算法,这是完全不可能的,我意识到这是不可能的。我想要得到的是一种算法,该算法能够将任何位的源字符串编码为由Shannon熵确定的绝
我正在开发需要两种类型服务器的服务器应用程序。 1 个主服务器将处理负载平衡、身份验证等,以及多个工作服务器实例将处理实际应用程序逻辑。我需要能够在这两种类型的服务器之间进行通信。做到这一点的最佳方法
这不是一个家庭作业问题,实际上我这样做是为了好玩。 问题是这样的: 我有一间具有指定“宽度”(椅子)的教室,我必须将所有学生安置好,这样教室里就不会发生对话。 如果一名学生与另一名学生相邻,就会发生对
我是 perfect 的新手,问题是,由于某种原因它不加载 css 或图像。我把它们都放在同一个目录中: 网络根目录: index.html 样式.css 图片.jpg 代码就是: 但是,无论我尝
当数没有完全平方时应该返回false,否则返回根。但在此代码中,它始终返回根。例如。输入5,根2。 main() { int i; int number=0; int result=0; for(i=
在下面的屏幕截图中,我试图让蓝色框中的文本居中对齐。它太低了,需要提升一两个像素。我一直在玩填充,但它似乎没有任何效果。 布局 XML 在这里: 有什么建议吗? 在@Snicola
我正在设计一个网站来跟踪举重和卡路里。我以前从未设计过自己的数据库,我认为在开始编码之前我应该尽可能地了解它。每次我认为我完成了,我都会因为它不完美而感到不安。我已经在 MySQL Workben
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
如何使 dict 的子类尽可能“完美”?最终目标是拥有一个简单的 dict,其中的键是小写的。 似乎应该有一些很小的原语集我可以重写以使其工作,但根据我所有的研究和尝试,情况似乎并非如此: 如果我 o
我正在尝试使用以下方法创建“完美滚动条”: https://noraesae.github.io/perfect-scrollbar/ 使用最简单的代码: $(document).ready(
我想将样式应用于滚动条,滚动条样式在使用 css 的 Chrome 中完美运行。但在 Firefox 和 Iexplore 中不起作用。 因此我选择了完美滚动条,但是如果我们使用箭头键导航选项,滚动条
我正在使用 ngx-perfect-scrollbar 进行滚动,垂直滚动运行良好,但水平滚动不起作用 All
我是一名优秀的程序员,十分优秀!