![](/img/trans.png)
[英]swapping vector element with a pointer from one derived class to another
[英]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.