m (Redirected page to Main Page)
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=== C++ ===
+
#REDIRECT [[Main Page]]
<source lang="cpp">
+
 
+
template<class T>
+
class Singleton
+
{
+
public:
+
    // Guaranteed to be destroyed.
+
    // Instantiated on first use.
+
    static T& GetInstance() { static T instance; return instance; }
+
private:
+
    Singleton();
+
    ~Singleton();
+
    Singleton(const Singleton &) {}; // Don't Implement
+
    Singleton& operator=(const Singleton<T>&) {}; // Don't Implement
+
    Singleton* operator&() {};
+
};
+
class A : public Singleton<A>
+
{
+
friend class Singleton<A>;
+
private:
+
    A(); // Should be private
+
    ~virtual A();
+
    A(const A&);
+
    A& operator=(const A&);
+
    A* operator&();
+
};
+
</source>
+

Latest revision as of 14:00, 30 May 2015