gpt4 book ai didi

c - 模拟 ANSI C 中的类

转载 作者:太空宇宙 更新时间:2023-11-04 01:42:15 24 4
gpt4 key购买 nike

要使结构的成员对外部“私有(private)”,我知道我可以做到这一点。

在.h文件中

typedef struct Obj Obj;

然后在 .c 文件中

struct Obj {
int a;
int b;
}

这将使人们知道ab 的存在。但是 .c 文件中的所有“成员”函数现在都将与它们有关,并且可以在那时运行。但我现在想知道的是,是否可以将结构的一部分设为“私有(private)”。假设我想将那些 ab 变量保留为“私有(private)”,但随后我想拥有一些我想保持公开的函数指针。这可能吗?我知道,如果我尝试在 .h 文件的结构中声明这些,我会在结构上出现重复声明错误。

最佳答案

复制 Python:对“私有(private)”成员(member)使用荣誉系统。

在成员名称的开头放置一个 _ 作为其他代码不应触及它的红旗。除非您的应用程序内部有安全边界(这并不常见),否则您实际上并不需要真正的 privates,您只需要团队成员同意的约定来假装他们是私有(private)的。

尽量不要通过强制 C 进入它并不真正适合的范例来增加复杂性。用于公共(public)/私有(private)接口(interface)的额外 header 和用于类管理的额外源文件将使您的开发工作更加复杂,从而破坏信息隐藏旨在实现的“更易于维护”的目标。

关于c - 模拟 ANSI C 中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3317195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com