前往
大廳
主題

C++物件的singleton constructor補充

Yang | 2023-04-15 17:26:31 | 巴幣 0 | 人氣 161

接續之前寫的
C++的friend class
C++物件的static和singleton

如果程式內有多個singleton classes,都要各自設計singleton constructor,感覺很麻煩

而且只知道程式啟動時,在進入main前,singleton classes都會建立和初始化,

但不知道也沒去控制classes初始化時機的先後順序,感覺對自己程式的掌握度不足

還好只要利用friend class,讓singleton classes都有共同的好碰友,就能解決這個問題

範例如下

//MyClass1.h
class MyClass1
{
    friend class MySingletonCons;

    private:
        static void Initialize()
        {
            //
        }
    public:
        static void DoSomething();
};

//MyClass2.h
class MyClass2
{
    friend class MySingletonCons;

    private:
        static void Initialize()
        {
            //
        }
    public:
        static void DoSomething();
};

//MySingletonCons.h
class MySingletonCons
{
    struct Constructor
    {
        Constructor() //初始化classes
        {
            //視實務需要,初始化變數或物件,也能呼叫多道方法,不用是public
            //自行控制和調整先後順序,統一管理
            MyClass2::Initialize();
            MyClass1::Initialize();
        }
    };

    const static Constructor Cons;
};

//程式啟動時,在進入main前,完成MyClass2MyClass1的建立和初始化
const struct MySingletonCons::Constructor MySingletonCons::Cons;
送禮物贊助創作者 !
0
留言

創作回應

更多創作