C++ 错误:class";LL";“没有标记成员”;“预结束”;

C++ 错误:class";LL";“没有标记成员”;“预结束”;,c++,struct,linked-list,C++,Struct,Linked List,我正在构建一个链表结构,我不完全确定如何调用一个与链表一起工作的函数。当我尝试调用一个函数时,当我的struct LL中已经有一个默认构造函数时,我被告知它不存在 #include <iostream> struct Node { int data; Node* next; }; struct LL { Node* head; void prepend(int data); }; void LL::prepend(int data) { No

我正在构建一个链表结构,我不完全确定如何调用一个与链表一起工作的函数。当我尝试调用一个函数时,当我的
struct LL
中已经有一个默认构造函数时,我被告知它不存在

#include <iostream>

struct Node {
    int data;
    Node* next;
};
struct LL {
    Node* head;
    void prepend(int data);
};
void LL::prepend(int data) {
    Node* temp = new Node();
    temp -> data = data;
    temp -> next = head;
    head = temp;
}
int main() {
    struct LL::prepend(3);
    return 0;
}
#包括
结构节点{
int数据;
节点*下一步;
};
结构LL{
节点*头;
void prepend(int数据);
};
void LL::prepend(int数据){
Node*temp=新节点();
温度->数据=数据;
温度->下一步=头部;
压头=温度;
}
int main(){
结构LL::前置(3);
返回0;
}

在my
main
function
struct LL::prepend(3)中
是我得到错误的地方,即使
prepend
LL
LL::prepend
不是
struct LL
的静态成员函数,也必须通过对象调用它

#include <iostream>

struct Node {
    int data;
    Node* next;
};
struct LL {
    Node* head;
    void prepend(int data);
};
void LL::prepend(int data) {
    Node* temp = new Node();
    temp -> data = data;
    temp -> next = head;
    head = temp;
}
int main() {
    struct LL::prepend(3);
    return 0;
}
int main() {
    LL ll;         // create LL object
    ll.prepend(3); // call ll object member function
    return 0;
}
或者,如果您使用指针(仅作为如何使用指针的示例)


因此,这是调用C++中结构的函数的唯一方法吗?在本例中,通过创建一个链表对象,然后通过该对象调用函数?此外,将ll->prepend(3);也可以吗?如果分配资源,则需要相应地销毁它们。@billz:即使
prepend
是类
LL
的静态成员,语法
struct LL::prepend(3)
仍然无效。像
struct LL
这样的复杂类型说明符不能用于引用类的非类型成员。编译器会将此语法解释为试图引用名为
LL::prepend
的嵌套类类型。因为
prepend
不是嵌套的类类型,所以整个过程的格式都不正确。@AndreyT是的。完全同意。