cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 15 juil. 2013 à 12:38
Bonjour.
Le premier code est, à mon sens, bien moins élégant. Les deux codes sont équivalents, mais la deuxième écriture est plus intelligente puisqu'elle permet, par nature, d'avoir directement certaines propriétés (comme être thread-safe, ou d'éviter de gérer manuellement une allocation).
Une forme que j'aime bien utiliser est la suivante:
template <typename T>
class Singleton /* : public boost::noncopyable */
{
public:
/** Retrives the instance. */
static T& instance();
};
Ainsi, il est aisé de transformer une classe quelconque en singleton, par un simple héritage.
class Toto : public Singleton<Toto>
{
private:
Toto() {}
public:
int _a;
};
int main()
{
Toto::instance()._a = 12;
}
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question