簡體   English   中英

從一個向量的末尾向另一個向量的類實例添加指針

[英]Adding A Pointer To A Class Instance From The End Of One Vector To Another

因此,在程序中有一個稱為cardDeck的向量,其中包含多個指向Card類的實例的指針:

std::vector<Card*> cardDeck;                                

同樣,還有一個稱為charCards的第二個向量,其中也包含指向card類的實例的多個指針:

std::vector<Card*> charCards;                              

程序功能的一部分是從cardDeck向量的末尾到charCards向量的末尾添加指向卡片類實例的指針:

charCards.push_back(cardDeck.back());                                                                               //Add the card selected from the deck to the Player's vector of initialisation cards

因此,例如,如果您從第一張牌開始:

在此處輸入圖片說明

然后添加第二張卡,而不是像這樣將第一張卡與第二張卡對齊顯示,這應該發生:

在此處輸入圖片說明

取而代之的是,只有第二張卡片(即添加到矢量中的最新卡片)才會呈現到屏幕上:

在此處輸入圖片說明

問題是-為什么當添加新的精靈類時,屬於charCards向量中最后一個實例之前的卡類實例的子畫面停止渲染?

在某個地方,在代碼中您沒有顯示給我們,而是在創建指向局部變量的指針,並將該指針推入容器。 然后,您要再做一次。 然后再次。

事情是,這些都是懸擺指針,它們甚至可能包含相同的地址(雖然這不能保證)。 這就是為什么您在每個元素中看到相同的值的原因。

  • 不要存儲指針,或者
  • 不要存儲懸空的指針。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM