我曾经对结构体和类之间的区别感到非常困惑,因为它们似乎被用于几乎相同的事情。我在谷歌上搜索了它们的区别,但唯一的答案是结构体默认具有公共成员,而类默认具有私有成员。然而,我的讲师告诉我结构体不能包含成员函数。但是我在互联网上看到很多帖子中人们在结构体中包含成员函数,并明确表示这样做没问题。
我的讲师似乎坚信按照定义来说,结构体不能拥有函数,那是怎么回事呢?我唯一能想到的是,也许编译器会将结构体内的函数更改为其他类型,以便它们在技术上不包含函数...这些矛盾是否有一个清晰的答案?
我曾经对结构体和类之间的区别感到非常困惑,因为它们似乎被用于几乎相同的事情。我在谷歌上搜索了它们的区别,但唯一的答案是结构体默认具有公共成员,而类默认具有私有成员。然而,我的讲师告诉我结构体不能包含成员函数。但是我在互联网上看到很多帖子中人们在结构体中包含成员函数,并明确表示这样做没问题。
我的讲师似乎坚信按照定义来说,结构体不能拥有函数,那是怎么回事呢?我唯一能想到的是,也许编译器会将结构体内的函数更改为其他类型,以便它们在技术上不包含函数...这些矛盾是否有一个清晰的答案?
在我看来,仅仅因为一种语言允许某些事情,并不意味着这是一个好主意。虽然在技术上,C++结构体可以包含函数,但我认为结构体数据类型最初的目的并不是包含函数。引入类类型的主要目的不是支持定义数据和处理数据的逻辑之间紧密关系,从而促进更健康的数据接口吗?
我目前正在开发一个项目,我意识到我的结构体需要提供比较运算符,以便包含它的排序列表能够进行排序。因此,在结构体中进行运算符重载是有意义的。这是使用带有方法的结构体的唯一合法原因。