AngelScript Help

Время жизни

Экземпляры класса умирают когда интерпретатор уйдёт из области видимости, в которой объявлена переменная.

Чтоб освободить принудительно освободить ссылку ей нужно присвоить другое значение или null.

class A { string s; A(string s){ [[[this|this.html]]].s = s; } [[[~|destructor.html]]]A(){ print(s + " destruct\n"); } } A@ a; // [[[Глобальные переменные|var.html#global]]] живут до конца игры void [[[main|main.html]]](){ @a = A("1"); // Создаём экземпляр 1, который не будет уничтожен после завершения функции @a = A("2"); // Уничтожаем экземпляр 1 поместив на его место экземпляр 2 @a = null; // Принудительно уничтожаем экземпляр 2 A@ b = A("3"); // Создаём экземпляр 3, который будет уничтожен после завершения функции /* Вывод консоли: 1 destruct 2 destruct 3 destruct */ }
Last modified: 16 October 2024