C++ C++;如何在struct中访问struct
我有一个关于结构的问题。。C++不是我所学的语言,但我需要做练习…< /P> 我有一个这样的结构:C++ C++;如何在struct中访问struct,c++,struct,C++,Struct,我有一个关于结构的问题。。C++不是我所学的语言,但我需要做练习…< /P> 我有一个这样的结构: struct List { int data; List* next; }; 我得到了类和方法,我可以用它们添加/删除/打印出结构的元素,例如查看我得到的元素方法: void Kopa::Print() { List *tmp = p; while (tmp != NULL) { cout << tmp->data <
struct List
{
int data;
List* next;
};
我得到了类和方法,我可以用它们添加/删除/打印出结构的元素,例如查看我得到的元素方法:
void Kopa::Print()
{
List *tmp = p;
while (tmp != NULL)
{
cout << tmp->data << endl;
tmp = tmp->next;
}
tmp.struktura;
}
首先,必须声明该结构的一个成员,就像声明其他成员变量一样:
struct List
{
struct NewList
{
int data;
};
NewList my_new_list; // Declare a member
};
然后像其他成员一样使用它,只需根据需要嵌套成员访问:
List l;
l.my_new_list.data = ...;
如果您指的是如何访问
List
中的NewList
结构来声明局部变量,则必须使用范围运算符:
:
List::NewList new_list;
new_list.data = ...;
这看起来像是链表的实现分配 您的结构看起来像节点结构,而不是列表。所以我将使用struct节点而不是List来避免混淆 我不知道你的p是从哪里来的,但它本质上是你如何在函数中创建p的
Node *p = new Node();
p->data = 1;
p->next = NULL;
现在,如果你需要添加一个新的,做同样的事情
Node *q = new Node ();
q->data = 2;
q->next = NULL;
//assign q after p
p->next = q;
还可以在结构中创建构造函数
Node (Node *previous, int newData)
{
List *q = new Node ();
q->data = newData;
q->next = NULL;
previous->next = q;
}
确保在处理完这些指针后调用delete来清理它们这是一个无用的结构声明,您没有实际的成员变量。我不理解您的问题。如何访问
List::NewList
?这就是你要问的吗?你确定你写的第一个声明不是你所需要的一切吗?请先告诉我们你想做什么,而不是你想怎么做。你可能对静态类型和运行时对象之间的区别感到困惑吗?
Node (Node *previous, int newData)
{
List *q = new Node ();
q->data = newData;
q->next = NULL;
previous->next = q;
}