【发布时间】:2016-01-03 18:03:00
【问题描述】:
我正在学习 C++ 中的面向对象编程课程。在最近的一项任务中,我在struct 中定义了一个成员函数。我的导师解释说,虽然在结构中使用成员函数是可编译的,但他宁愿我们不这样做,因为与 C 的向后兼容性,并且(尤其是在这个初学者课程中)练习良好的数据封装 - 我们应该使用 struct用于主要包含数据的类型,class 用于受益于更多过程封装的应用程序。他表示这种做法来自 C++ 结构/类的历史,这是我想了解的更多内容。
我知道除了默认成员/继承访问之外,结构在功能上与类相同。我的问题是:
为什么 C++ 中包含结构和类?从我在 C# 中的背景来看,结构和类有重要区别,似乎 C++ 中的 struct 只是用于定义具有默认公共性的类的语法糖。是吗?
我不是在寻找意见关于何时/为什么应该使用一个而不是另一个 - 我出生在这些构造之后,我正在寻找历史 他们。他们是一起受孕的吗?如果是这样,为什么?如果不是,哪个先出现,为什么要添加第二个?我意识到这个社区中有许多可敬的长者可能对这些功能的起源有鲜活的记忆,并且链接到标准出版物或代码示例,其中一个或另一个首次出现,将增加答案的帮助.
请注意,这个问题不是:
【问题讨论】:
标签: c++ class struct standards