[英]How to allocate memory for new structure?
我正在尝试在类的构造函数中为新的链表分配内存,但是当我尝试对其进行编译时,会收到一些奇怪的消息。
struct Node {
Song s;
Node *next = NULL;
};
tsuPod::tsuPod(int songs, int size)
{
MAX_SONGS = songs;
MAX_MEM = size;
memory = 0;
Node *list = new Node; // call to implicitly deleted default constructor of Node
}
似乎这应该是一个相对较快的响应,因为我猜想我缺少了c++
某些关键内容,并不一定会导致语法错误。 老实说,我什至不知道结构可以有构造函数,但显然它们可以。 无论如何,如果有人可以快速告诉我出了什么问题或为什么这样说,那么您真棒! 谢谢!
当你没有为提供任何构造Node
,默认构造Node
将被编译器提供。 但是,当尝试这样做时,便遇到了一个问题:要(默认)构造一个Node
,您首先需要构造一个Song
。 出于以下三个原因之一,可能无法创建Song
:
Song
所有构造函数都带有一个或多个参数,而您没有为其提供默认值。 Song() = delete
。 这就是为什么错误消息还指出默认构造函数被隐式删除的原因。 您现在可以排除选项#2和#3。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.