Alerr Asked:2020-03-06 14:31:52 +0000 UTC2020-03-06 14:31:52 +0000 UTC 2020-03-06 14:31:52 +0000 UTC 结构与类有何不同?[复制] 772 然而,它们有何不同?如果只是访问说明符,那你为什么需要为此引入一个类? c++ 3 个回答 Voted Best Answer AnT stands with Russia 2020-03-06T14:38:41Z2020-03-06T14:38:41Z 如果只是访问说明符,那你为什么需要为此引入一个类? 好吧,这正是我们所需要的。决定 C++ 类中的默认访问权限应该是private. struct并且将类型中的默认访问更改private为太大的更改,将与 C 的任何向后兼容性扼杀在萌芽状态。在那些日子里,这种向后兼容性很重要。 没有更多的差异。您有权struct通过关键字引用先前用该关键字声明的类class(反之亦然) struct S; class S { ... }; 它也可以自由使用关键字struct和class详细的类型说明符,无论类是如何用哪个词声明的。 Harry 2020-03-06T14:36:42Z2020-03-06T14:36:42Z 就个人而言,我认为这是 Stroustrupov 的“C with objects”的遗产 :) 最后,所有可以完成的事情float都可以完成double——但是这两种类型都保留在语言中:) 但另一方面,它是非常合乎逻辑的——存在struct简单的数据聚合,并class用于表达具有行为的对象。纯粹为了这些实体的逻辑分离。那些struct用于类的人应该像那些class用于简单结构的人一样受到打击...... 但这只不过是我的意见。 Unick 2020-03-06T18:22:01Z2020-03-06T18:22:01Z 我将部分重复 1 个答案:默认情况下 Ystruct具有所有字段public并且默认继承public,yclass是两者private。
好吧,这正是我们所需要的。决定 C++ 类中的默认访问权限应该是
private.struct并且将类型中的默认访问更改private为太大的更改,将与 C 的任何向后兼容性扼杀在萌芽状态。在那些日子里,这种向后兼容性很重要。没有更多的差异。您有权
struct通过关键字引用先前用该关键字声明的类class(反之亦然)它也可以自由使用关键字
struct和class详细的类型说明符,无论类是如何用哪个词声明的。就个人而言,我认为这是 Stroustrupov 的“C with objects”的遗产 :)
最后,所有可以完成的事情
float都可以完成double——但是这两种类型都保留在语言中:)但另一方面,它是非常合乎逻辑的——存在
struct简单的数据聚合,并class用于表达具有行为的对象。纯粹为了这些实体的逻辑分离。那些struct用于类的人应该像那些class用于简单结构的人一样受到打击......但这只不过是我的意见。
我将部分重复 1 个答案:默认情况下 Y
struct具有所有字段public并且默认继承public,yclass是两者private。