AngelScript Help

Приведение типов

Конструкторы, принимающие один аргумент могут быть использованы в качестве конструктора при приведении типов.

class A { string s; A(){} // Конструктор по умолчанию необходимо указать явно A([[[const|var.html#const]]] string s){ [[[this|this.html]]].s = s; } } void [[[main|main.html]]](){ A a = "a"; print(a.s); }

В отличие от копирующего конструктора такие конструкторы требуют наличие конструктора по умолчанию.

explicit

Для того чтобы разрешить только явное использование конструктора, необходимо использовать ключевое слово explicit.

class A { string s; A(){} A([[[const|var.html#const]]] string s) explicit { [[[this|this.html]]].s = s; } } void [[[main|main.html]]](){ A a = A("a"); // A a = "a"; // Ошибка! Запрещено неявное использование конструктора print(a.s); // a }
Last modified: 16 October 2024