Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用另一个结构扩展结构成员_C++_Struct_Extending - Fatal编程技术网

C++ 使用另一个结构扩展结构成员

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函数,它创建该结构的成员并将它们存储在

我将通过完全删除前一个问题来编辑这个问题,而不是提出一个新问题,希望能使它不那么混乱

文字墙

我有一个基本结构,它有一些基本值,例如图像宽度、高度以及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函数,它创建该结构的成员并将它们存储在数组中。如果该数组名为“instance”,则只需执行以下操作即可访问单个成员及其值:instance[number].x等

然后我有一个或两个循环来处理所有这些成员,并按照深度值的顺序进行处理,深度值在struct中定义,在initialiser函数中设置。与此类似(简化):

(i=0;i)的

我对结构的理解是,结构越大,访问单个变量所需的时间就越多

你的理解从根本上是错误的。结构的大小对访问该结构中的单个变量所需的时间几乎没有影响(如果有的话)

然而,不管怎样,您构建数据的基本思想是,使一个结构包含(或拥有指向)其他结构的指针,这是非常好和合理的

不太好或不合理的做法是使指针基本上未键入,以便它可以引用任何其他类型。如果您想要一个衣服集合,您可能会从
衣服
基类开始,然后从该基类派生各种其他类型(外套、衬衫、宽松裤、牛仔裤等)。然后
类型可能包含(例如)指向
衣服
的指针向量,因此它可以包含指向从
衣服
派生的所有其他类型的指针


就“扩展范围”而言……好吧,我不能说得太多,除了我不能理解你想说的话之外。

你想要的代码示例(即使是在不可编译的伪代码中,只要你声明的话)比用散文讲述长篇故事要好得多。如果这是一个短篇故事,我害怕看到长篇大论:)我不是想搞笑什么的,但是将一个结构分解成另一个结构不是一个好主意。不要这样做,当你尝试它时会发生不好的事情。@Happy Yee sir!(我忍不住)请回顾一下继承和包容的主题,以扩展现有的结构。
for (i=0;i<maxdepth;i++) {
    if (instance[n].depth == i) { doStuff; }
}