ETH官方钱包

前往
大廳
主題

C++物件的singleton constructor補充

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

接續(xù)之前寫的
C++的friend class
C++物件的static和singleton

如果程式內(nèi)有多個singleton classes,都要各自設(shè)計singleton constructor,感覺很麻煩

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

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

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

範(fàn)例如下

//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
        {
            //視實務(wù)需要,初始化變數(shù)或物件,也能呼叫多道方法,不用是public
            //自行控制和調(diào)整先後順序,統(tǒng)一管理
            MyClass2::Initialize();
            MyClass1::Initialize();
        }
    };

    const static Constructor Cons;
};

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

創(chuàng)作回應(yīng)

相關(guān)創(chuàng)作

更多創(chuàng)作