Skip to content

[FR] 2.1 Constructor & Deconstructor

Nicolas BOITEUX edited this page Dec 27, 2017 · 6 revisions

Classe

Les fonctions constructor et deconstructor en OOP ont un usage special. Si vous les appelez, vous devez le faire à partir de la class et non à partir d'un objet. C'est un peu compliqué à comprendre pour commencer, mais vous devriez considérer ces méthodes comme statiques et utilisable avec la classe.

Constructor

constructor est la première fonction qui est appelé au moment de l'instanciation de l'objet. Son rôle est d'initialiser les variables de l'objet. Contrairement aux autres langages, le nom de constructor en OOP est constructor

Pour instancier un objet en OOP, vous devez apeller la fonction new qui ensuite apelle elle même la function constructor. La fonction constructor doit être déclarée avec la visibilitée PUBLIC

Exemple

	PUBLIC FUNCTION("string","constructor") {
		MEMBER("name",_this);
	};
	
	_myfooobject = ["new", "Thomas"] call OO_FOO;

ou

	_myfooobject = NEW("Thomas",OO_FOO);

instanciera un objet _myfooobject de type FOO, et donnera la valeur Thomas à la variable name.

Deconstructor

deconstructor est la dernière function à être appelé au moment de la destruction de l'objet. Son rôle est de libérer l'ensemble des variables de l'objet.

Pour appeler le deconstructor, on doit appeler la fonction delete qui appelle ensuite elle même la fonction deconstructor

La fonction deconstructor doit être déclaré avec une visibilité PUBLIC

Example

	PUBLIC FUNCTION("string","deconstructor") {			
		DELETE_VARIABLE("name");
	};

	["delete", _myfooobject] call OO_FOO;

ou

	DELETE(_myfooobject);

delete va détruire l'objet _myfooobject de type OO_FOO et écrasera le contenu de la variable name avec nil.