我们啥时候需要在纯 C++ 程序中使用结构?纯 C++ 程序是不是需要结构? [复制]

Posted

技术标签:

【中文标题】我们啥时候需要在纯 C++ 程序中使用结构?纯 C++ 程序是不是需要结构? [复制]【英文标题】:When do we need to use a structure in a pure C++ program? Is structure at all required in a pure C++ program? [duplicate]我们什么时候需要在纯 C++ 程序中使用结构?纯 C++ 程序是否需要结构? [复制] 【发布时间】:2014-02-22 12:38:34 【问题描述】:

我们什么时候需要在纯 C++ 程序中使用结构?纯 C++ 程序是否需要结构? 我知道结构是 C 程序中封装成员和函数指针的唯一方法。但是,如果我使用 C++ 来编写我的完整模块,如果我远离结构并使用类来代替,是否 100% 可以?我错过了什么吗?

(我用谷歌搜索,但我的问题非常具体——结构在纯 C++ 代码中没用)

=== 已编辑 === 我的问题不是关于结构和类之间的区别或共性,而是,当你可以 100% 取消类时,我们是否需要 C++ 中的“结构”。除了与 C 的向后兼容性之外,C++ 中的结构不是冗余结构吗?我了解它们之间的区别w.r.t。访问说明符,但只有语法差异。

【问题讨论】:

你的问题根本不是具体的,google "c++ struct vs class" structclass 本质上是一样的,区别在于默认的访问策略 @Janakiram 嗯,这个区别正是它:如果你不打算使用任何私有方法或数据文件,那么拥有结构会更方便。 (加上结构起源于 C 的历史性事物)。 如果你理解了struct和class的区别,你就知道什么时候用,为什么用,你的问题就变得无关紧要了。 @Janakiram 正确。 C++ 中的很多东西只是为了方便。从理论上讲,我们几乎可以在 C 中实现所有目标,但谁愿意呢? 【参考方案1】:

struct 保留在 C++ 中,以便与 C 向后兼容。默认情况下,结构成员是公共的,但类成员是私有的。如果成员的类型是预定义的,您可以将类和结构相互替换并获得相同的结果。

【讨论】:

以上是关于我们啥时候需要在纯 C++ 程序中使用结构?纯 C++ 程序是不是需要结构? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在纯本机模式下开始调试 C# 启动项目

是啥导致无法在纯 JavaScript 中检测到滚动到 HTML 元素的底部?

如何在纯函数式 React 组件中处理事件

如何在纯 C++ 中高效快速地清理我的 GDI 对象 - winapi(不是 .net,c#)?

可以定义一个在extern“C”块中继承另一个结构的结构吗?

如何在纯文本 XML 中分配角色/权限