LINUX.ORG.RU

История изменений

Исправление slovazap, (текущая версия) :

А почему тогда память где остается реализация методов класса не очищается?

Реализация методов класса - это код, который никогда не изменяется и никак не зависит от времени жизни объектов класса. Если ты имел в виду данные объекта, то зачем это они должны очищаться?

В твоём примере ты вообще не обращаешься к this, и состояние объекта ни на что не влияет. А мог бы даже успешно обратиться к полю, поскольку память где был расположен объект могла остаться доступной программе и даже не быть кем-то переписанной. В другом случае мог бы прочитать мусор, в третьем упасть, в четвёртом это даже не скомпилируется.

Исправление slovazap, :

А почему тогда память где остается реализация методов класса не очищается?

Реализация методов класса - это код, который никогда не изменяется и никак не зависит от времени жизни объектов класса. Если ты имел в виду данные объекта, то зачем это они должны очищаться?

В твоём примере ты вообще не обращаешься к this, и состояние объекта ни на что не влияет. А мог бы даже успешно обратиться к полю, поскольку память где был расположен объект могла остаться доступной программе и даже не быть кем-то переписанной. В другом случае мог бы прочитать мусор, в третьем упасть, у четвёртом это даже не скомпилируется.

Исправление slovazap, :

А почему тогда память где остается реализация методов класса не очищается?

Реализация методов класса - это код, который никогда не изменяется и никак не зависит от времени жизни объектов класса. Если ты имел в виду данные объекта, то зачем это они должны очищаться?

В твоём примере ты вообще не обращаешься к this, и состояние объекта ни на что не влияет. А мог бы даже успешно обратиться к полю, поскольку память где он был могла остаться доступной программе и даже не быть кем-то переписанной. Но это UB, поэтому в общем случае не работает ни в каком виде.

Исправление slovazap, :

А почему тогда память где остается реализация методов класса не очищается?

Реализация методов класса - это код, который никогда не изменяется и никак не зависит от времени жизни объектов класса. Если ты имел в виду данные объекта, то зачем это они должны очищаться?

В твоём примере ты вообще не образаешься к this, и состояние объекта ни на что не влияет. А мог бы даже успешно обратиться к полю, поскольку память где он был могла остаться доступной программе и даже не быть кем-то переписанной. Но это UB, поэтому в общем случае не работает ни в каком виде.

Исправление slovazap, :

А почему тогда память где остается реализация методов класса не очищается?

Реализация методов класса - это код, который никогда не изменяется и никак не зависит от времени жизни объектов класса. Если ты имел в виду данные объекта, то зачем это они должны очищаться?

Исходная версия slovazap, :

А почему тогда память где остается реализация методов класса не очищается?

Реализация методов класса - это код, который никогда не изменяется и никак не зависит от времени жизни объектов класса.