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
functionstruct 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是的。完全同意。