Singleton pattern confusion in C++

  • Hi,

    I have been trying to implement a singleton pattern example but it’s causing a lot of difficulties, below is my example:

    // Singleton.h
    class  Singleton {
        Singleton() {}
        int a, b;
        static Singleton *obj;
        Singleton(const Singleton &);
        static Singleton &getObject();
    // Singleton.cpp
    Singleton *Singleton::instance = 0;
    // Need to keep copy constructor as it is.
    Singleton::Singleton(const Singleton &other) {
        // to copy the a and b values
    Singleton &Singleton::getObject() {
        return obj;
    int main() {
        Singleton obj = Singleton::getObject();
        court << &obj << endl;
        court << &Singleton::getObject(); << endl;
        return 0;

    In the above example, the address of both objects is different in the output, why? How can I solve this?

    Thanks in advance and looking forward.

    Merry Christmas everyone.


  • @2k10cs86 sagte in Singleton pattern confusion in C++:

    Singleton obj = Singleton::getObject();

    This line creates a copy!

    Disable the copy constructor when using a singleton. Why the hell are you implementing a copy constructor in a singleton? That's contradictory.


    Singleton::Singleton(const Singleton &other) {
        // to copy the a and b values

    Why copy a singleton? The point of a singleton is that you cannot copy it.

    You might want to look up "Meyer's Singleton" for an alternative implementation (if you really really really need a singleton).

Log in to reply