Allez les destructeurs?

Je sais il n'y a pas des destructeurs en Aller puisque, techniquement, il n'y a pas de classes. En tant que tel, j'utilise initClass à effectuer les mêmes fonctions qu'un constructeur. Cependant, est-il un moyen de créer quelque chose pour imiter un destructeur en cas de résiliation d'un contrat, pour l'utilisation de, disons, la fermeture des fichiers? Maintenant je viens de l'appeler defer deinitClass, mais ce n'est plus à du bidouillage, je pense, une mauvaise conception. Quelle serait la bonne façon?

  • Un mineur en heads-up: le mot "classe" dans le nom d'un "constructeur" et "destructeur" fonctions est source de confusion et peut indiquer que vous maintenir un peu de mal modèle mental sur ce genre de choses: de telles fonctions initialiser/deinitialize les instances d'un type (eh bien, Allez, n'a pas de classes, mais les classes en C++comme les PLs sont des types), c'est du béton, les variables qui ont un type particulier. Ils n'ont pas initialiser/deinitialize un type lui-même. C'est pourquoi "constructeur" les fonctions sont généralement appelés New() ou NewWhatever() en Aller: ils vous donnent un nouveau initialisé la valeur.
  • Vous pouvez trouver ceci pour être d'un intérêt particulier à l'égard de nommage des packages, des types et des fonctions écrits en Aller de code. Veillez également à consulter la section intitulée "Autres lectures" il.
  • l'utilisation de initClass et deinitClass étaient juste générique, j'étais juste en utilisant les noms de montrer ce que je faisais. J'ai créé une structure (struct) alors appelé initStructName de faire quelques choses de fantaisie alors sous que j'ai ajouté reporter deinitStructName, à fermer des fichiers, et bien nettoyer etc.
  • merci pour le lien
InformationsquelleAutor kdgwill | 2015-09-24