[英]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.