结构中的类

use*_*353 0 c++ structure class

我有两个问题.

  1. 我知道可以在结构中声明类对象.但从设计的角度来看,这样做是否道德?

  2. 在我的场景中,我有一个包含大量成员元素的结构,我也希望包含一个类对象.我有另一个问题.如果我memset()整个结构,类句柄也被重置.所以,我检查没有类对象的结构的其余部分的大小,并在我调用memset()时减去它,以解决这个问题.(请注意,我在这里使用STL类'队列'.我不能在对象上使用sizeof()运算符,因为它没有重载.)

但这完全是一种不可接受的方式吗?你能为这个问题提出一些解决方案吗?

Kon*_*lph 9

  • struct= class(默认可见性除外).

  • 如果你有"大量成员",你可能做错了什么,改变你的设计,否则就变得难以处理.

  • 在有意义的情况下嵌套类和/或结构是绝对可以的.例如,为实现细节定义嵌套类是很常见的(因此linked_list类可以有一个node成员类).

  • 没有"类对象"这样的东西,而且你不清楚你的意思.

  • 不要使用memset- 你可能不需要它,只需使用普通的构造函数和赋值.

  • 我不能在对象上使用sizeof()运算符

    错了,你可以用它.