如果我有一個指向結構/對象的指針,並且該結構/對象包含另外兩個指向其他對象的指針,並且我想刪除「包含兩個指針的對象而不銷燬指針」 - 我該怎麼辦那?如何在不破壞指針(struct/object)的情況下刪除指向(struct/object)的指針?
指向對象A的指針(包含指向對象B的指針,包含指向對象C的指針)。 刪除對象A 指向對象A的指針被刪除,指向對象B/C的指針仍然存在。
有什麼我必須做的,使這項工作?
UPDATE
它是一個遊戲項目,我希望這可以解釋它。現在,我有一些「問題」,甚至把兩個指針到B,C中的第一個結構(A)
struct Player
{
char * Name;
Weapon* PlayerWeapon;
Armor* PlayerArmor;
};
struct Weapon
{
char * Name;
int Damage;
};
struct Armor
{
char * Name;
int Resistance;
};
而這在某種程度上是行不通的。
Player* CreatePlayer(char * Name, Weapon* weapon, Armor* armor)
{
Player *pPlayer = new Player;
pPlayer->Name = name;
pPlayer->Weapon = weapon;
pPlayer->Armor = armor;
};
而後來當玩家「死亡」時,該設備不應該被刪除。
我們需要更多的細節。成員是否在struct的析構函數中被銷燬? – Dialecticus
你是否真的試圖做到這一點,並遇到一些問題?因爲刪除一個結構體不會在它所包含的指針上調用delete。 – Rook
誰擁有* B和C?什麼決定什麼時候應該刪除? – Potatoswatter