从驻留在非相邻内存中的实例继承

时间:2014-08-03 18:41:54

标签: c++

我不认为这是可能的,但我应该问:

我有一个“对象”,由头部和尾部精神形成,共同形成身体。 头是数组的元素。

正文有一个存储头部索引的成员。

struct head{ body* bodyP; int kind; int execution_level;}
head heads[0x1000];

struct tail{ int head_index; other_data xxxx; }

struct(或class)“head”还有我需要从尾部访问的方法。

我想要的是可以将“尾巴”的名称改为“body”(简单部分),并且只需使用head_index来引用头部就可以使“body”从头部继承。

1 个答案:

答案 0 :(得分:0)

您需要将其绘制出来以显示常见和可选部分。

以下是我对您的问题描述的理解(实施),而不是您的代码:

struct Body;  // Forward declaration.

struct Common_To_Head_Tail
{
  Body * p_body; // link to a body, hopefully it's same between head and tail.
  // Methods common to Head and Tail
};

struct Head
: public Common_To_Head_Tail
{
}

struct Tail
: public Common_To_Head_Tail
{
}

struct Body
{
  Head * p_head;
  Tail * p_tail;
};

<强>解释
头部和尾部有一些共同的东西,例如指向身体的指针(如果你愿意,可以使用索引)。需要前向声明,因此编译器可以解析Body指针。

HeadBody继承(分享)头部和身体的常见内容。

Body 包含头部和尾部。使用指针(索引)是因为部件可以位于其他地方。

希望这有帮助。