美好的一天。我正忙着为大学的项目编写代码,我想知道如何将数据成员添加到节点结构(对于链表),但结构先前已经定义过。我不能在原始结构中将其全部定义为指令另有说明。
这是我的结构,位于ListAsSSL.h文件中:
struct node
{
node* next;
Object obj;
};
我可以在另一个头文件中执行此操作:
struct node: node
{
node* previous;
};
谢谢。我只是自学了Decorator模式,但它只展示了如何用类而不是结构来实现它。
感谢您的帮助。 理查德
答案 0 :(得分:4)
不,你不能像这样延长struct
。使用继承创建一个新的struct
,如下所示:
struct node
{
node* next;
Object obj;
};
在您的其他文件中:
struct newNode: node
{
node* previous;
};
在您的客户端代码中,访问结构的代码,您必须使用新结构而不是旧结构。请记住,这是继承在许多情况下构建的内容:向现有类添加更多功能!
答案 1 :(得分:0)
你能创建一个新的结构吗?例如:
struct nodeV2
{
Object obj;
nodeV2* next;
nodeV2* previous;
};
对我来说,这似乎是最简单的方法。这样,您可以保留原始结构,而不进入继承。
一切顺利。