从驻留在非相邻内存中的实例继承
Inheritance from an instance residing in non adjacent memory
我认为这是不可能的,但我应该问:
我有一个"物体",它在精神上是由头和尾组成的,它们一起构成了身体。头是数组的元素。
体体有一个成员,用于存储头的索引。
struct head{ body* bodyP; int kind; int execution_level;}
head heads[0x1000];
struct tail{ int head_index; other_data xxxx; }
结构(或类)"head"也有我需要从tail中访问的方法。
我想要的是有可能将"尾巴"的名称改为"身体"(容易的部分),并能够使"身体"从头部继承,只是通过使用head_index来引用头部。
您需要把它画出来,以显示常用的和可选的部分。
这是我对你的问题描述的理解(实现),而不是你的代码:
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
指针所必需的。
Head
和Body
继承(共享)头部和身体的共同物质。
Body 包含一个头和一个尾。使用指针(索引)是因为部件可以位于其他地方。
相关文章:
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 常量类实例的C++内存地址
- 是否应该使用继承来减少内存消耗的实例的内存分配?
- 在C++中,为什么仅包含与其基类实例的联合的派生类占用的内存多于联合的大小?
- 在函数中实例化的 STL 对象正在占用堆栈或堆上的内存?
- 将内存文件添加到 clang 编译器实例
- 在结构中使用位字段并使用C++从内存中读取实例
- 如何将内存分配给具有数组成员的类的实例
- std::array 模板实例会占用更多的代码内存吗?
- 插入std :: basic_ostream实例化输出时的内存故障
- 构造函数C++中的类实例内存地址
- 基本指针如何能够在派生的类实例中了解基本成员的内存位置
- 有没有办法区分对象实例使用的内存类型
- 如果我声明一个没有名称的类实例,它会保留在内存中吗?
- 当我创建一个int指针并实例化一个数组时,数组在内存中发生了什么
- 派生类的实例化是否为基类的私有成员分配内存
- 分配给 cpp 中定义的全局静态变量的内存是否在 C++ 中删除其类的实例后释放
- 从用户控制的内存池中分配和实例化对象
- C++中参数列表中实例化对象的内存管理
- 静态内存实例中的字符串计数