C++ C++;如何在struct中访问struct

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 <

我有一个关于结构的问题。。C++不是我所学的语言,但我需要做练习…< /P> 我有一个这样的结构:

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;
}