已经在 C#/.Net 的上下文中提出了 这个问题。
现在我想了解 C++ 中结构和类之间的区别。请讨论技术差异以及在 OO 设计中选择其中一种的原因。
我将从一个明显的区别开始:
- 如果您不指定
public:
或private:
,则结构的成员默认是公共的;默认情况下,类的成员是私有的。
我确信在 C++ 规范的晦涩角落中还可以找到其他差异。
原文由 palm3D 发布,翻译遵循 CC BY-SA 4.0 许可协议
已经在 C#/.Net 的上下文中提出了 这个问题。
现在我想了解 C++ 中结构和类之间的区别。请讨论技术差异以及在 OO 设计中选择其中一种的原因。
我将从一个明显的区别开始:
public:
或 private:
,则结构的成员默认是公共的;默认情况下,类的成员是私有的。我确信在 C++ 规范的晦涩角落中还可以找到其他差异。
原文由 palm3D 发布,翻译遵循 CC BY-SA 4.0 许可协议
还有一个不成文的规则告诉我们:如果类的数据成员与自己没有关联,则使用结构。如果数据成员的值依赖于数据成员的另一个值,则使用类。
铁
class Time
{
int minutes;
int seconds;
}
struct Sizes
{
int length;
int width;
};
原文由 Maciej Urbański 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
您忘记了类和结构之间棘手的第二个区别。
引用标准(C++98 到 C++11 中的第 11.2.2 节):
为了完整起见,类和结构之间更广为人知的区别在 (11.2) 中定义:
附加区别:关键字
class
可以用来声明模板参数,而struct
关键字不能这样使用。