3

delete()オペレーターはオブジェクトのすべてのサブオブジェクトも破棄しますか? または、親オブジェクトを削除する前にサブオブジェクトの削除を呼び出す必要がありますか?

class equipment
{
   public:
     int model_id;
     ...
}

class player
{
   public:
     int x, y;
     equipment * Equipment; 
     player(void) { Equipment = new equipment[2];};
     ~player(void) { delete [] Equipment; }
};

int main (....)
{
  player = new Player;
  ...
  ...
  delete Player;
}
4

5 に答える 5

3

メインオブジェクトのデストラクタで動的に割り当てられたサブオブジェクトを削除する必要があり、配列を削除することでこれを適切に行いましたEquipment

于 2013-06-24T08:06:20.333 に答える