C++ 使用另一个结构扩展结构成员
我将通过完全删除前一个问题来编辑这个问题,而不是提出一个新问题,希望能使它不那么混乱 文字墙 我有一个基本结构,它有一些基本值,例如图像宽度、高度以及x和y位置,如下所示:C++ 使用另一个结构扩展结构成员,c++,struct,extending,C++,Struct,Extending,我将通过完全删除前一个问题来编辑这个问题,而不是提出一个新问题,希望能使它不那么混乱 文字墙 我有一个基本结构,它有一些基本值,例如图像宽度、高度以及x和y位置,如下所示: struct obj { int id = 0; float x = 0; float y = 0; int image_w = 0; int image_h = 0; int depth = 0; } 然后我有一个initialiser函数,它创建该结构的成员并将它们存储在
struct obj {
int id = 0;
float x = 0;
float y = 0;
int image_w = 0;
int image_h = 0;
int depth = 0;
}
然后我有一个initialiser函数,它创建该结构的成员并将它们存储在数组中。如果该数组名为“instance”,则只需执行以下操作即可访问单个成员及其值:instance[number].x等
然后我有一个或两个循环来处理所有这些成员,并按照深度值的顺序进行处理,深度值在struct中定义,在initialiser函数中设置。与此类似(简化):
(i=0;i)的
我对结构的理解是,结构越大,访问单个变量所需的时间就越多
你的理解从根本上是错误的。结构的大小对访问该结构中的单个变量所需的时间几乎没有影响(如果有的话)
然而,不管怎样,您构建数据的基本思想是,使一个结构包含(或拥有指向)其他结构的指针,这是非常好和合理的
不太好或不合理的做法是使指针基本上未键入,以便它可以引用任何其他类型。如果您想要一个衣服集合,您可能会从衣服基类开始,然后从该基类派生各种其他类型(外套、衬衫、宽松裤、牛仔裤等)。然后人类型可能包含(例如)指向衣服
的指针向量,因此它可以包含指向从衣服
派生的所有其他类型的指针
就“扩展范围”而言……好吧,我不能说得太多,除了我不能理解你想说的话之外。你想要的代码示例(即使是在不可编译的伪代码中,只要你声明的话)比用散文讲述长篇故事要好得多。如果这是一个短篇故事,我害怕看到长篇大论:)我不是想搞笑什么的,但是将一个结构分解成另一个结构不是一个好主意。不要这样做,当你尝试它时会发生不好的事情。@Happy Yee sir!(我忍不住)请回顾一下继承和包容的主题,以扩展现有的结构。
for (i=0;i<maxdepth;i++) {
if (instance[n].depth == i) { doStuff; }
}