相关疑难解决方法(0)

C/C++ Struct vs Class

在完成我的C++类之后,在我看来,结构/类几乎完全相同,除了一些细微的差别.

我以前从未用C语言编程; 但我确实知道它有结构.在C中是否可以继承其他结构并设置公共/私有的修饰符?

如果你能在常规C中做到这一点,为什么我们需要C++?是什么让类与结构不同?

c++ struct class

104
推荐指数
4
解决办法
9万
查看次数

为什么C++中有一个class关键字?

这个问题就浮现在我的脑海,当我得知C++与C的背景下,即使有一个 struct为什么斯特劳斯认为有必要引入class关键字?我当时试过问过人,但得不到满意的答复.那么Stack Overflow社区可以回答它吗?

c++

12
推荐指数
3
解决办法
1777
查看次数

为什么C++中都存在struct和class?

我们知道,struct并且class可以在语言的许多地方互换.令人困惑的是,关键字本身并不一定与标准中使用的语言相对应.例如,在草案标准N4567 [class]/10中,

POD结构109是一个非工会类既是琐碎类和一个标准布局类,和具有类型的非POD结构,非POD联合(或这些类型的阵列)的无非静态数据成员.类似地,POD联合是一个简单的类和标准布局类的联合,并且没有非POD结构类型的非静态数据成员,非POD联合(或这种类型的数组).甲POD类是一类可以是一个POD结构或一个POD结合.

在过于简化的术语,struct并且class是在以下情况下可以互换:

  • 宣布"阶级"
  • 声明范围的枚举类型的声明
  • 详细说明了类型说明符,除非声明了"class" union

但是,struct 显式不能在模板声明中用于引入类型模板参数:

template <struct T> // error
Run Code Online (Sandbox Code Playgroud)

我无法看到之间的任何显著差异structclass,甚至在POD上面的例子,因为一个POD结构为界定标准,使用时请声明structclass.

[class]/8 标准布局结构是使用类键结构类键类定义的标准布局.甲 标准布局联盟是与定义的标准布局类类键联合.

这引起了明显的不一致,这似乎相当多余和令人困惑.

我有两个问题:

  1. 是否有任何技术差异,我错过了明显区分structclass

  2. 这种笨拙背后的理由是什么?

我忽略了默认访问说明符之间的区别,因为每个人都已经知道了.

c++ standards struct class

8
推荐指数
2
解决办法
1019
查看次数

标签 统计

c++ ×3

class ×2

struct ×2

standards ×1