• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            使用延后static 替換全局變量的使用方法

            struct Gain_Map_String
            {
            public:
                static string GetStringByCmd(CMD_GAIN cmd)
                {
                    const Gain_Map_String* p_static_self = __InitInstance();
                    map<CMD_GAIN, string>::const_iterator iter_map;
                    if(p_static_self->map_string.end() != (iter_map = p_static_self->map_string.find(cmd)))
                        return iter_map->second;
                    return string("");
                }
                static CMD_GAIN GetCmdByString(string& str)
                {
                    const Gain_Map_String* p_static_self = __InitInstance();
                    map<CMD_GAIN, string>::const_iterator iter_map;
                    for (iter_map = p_static_self->map_string.begin(); iter_map != p_static_self->map_string.end(); ++iter_map)
                    {
                        if(str == iter_map->second)
                            return iter_map->first;
                    }
                    return CMD_GAIN_END;
                }
                static CMD_GAIN GetCmdByString(const char* pSZ)
                {
                    const Gain_Map_String* p_static_self = __InitInstance();
                    map<CMD_GAIN, string>::const_iterator iter_map;
                    string str(pSZ);
                    for (iter_map = p_static_self->map_string.begin(); iter_map != p_static_self->map_string.end(); ++iter_map)
                    {
                        if(str == iter_map->second)
                            return iter_map->first;
                    }
                    return CMD_GAIN_END;
                }
            private:
                map<CMD_GAIN, string> map_string;
                static const Gain_Map_String* __InitInstance()
                {
                    static Gain_Map_String stati_instance;
                    return (&stati_instance);
                }
                Gain_Map_String()
                {
                    map_string[CMD_GAIN_PlaceOCOOrder] = "CMD_GAIN_PlaceOCOOrder";
                    map_string[CMD_GAIN_PlaceOCOOrderResult] = "CMD_GAIN_PlaceOCOOrderResult";
                    map_string[CMD_GAIN_PlaceSingleOrder] = "CMD_GAIN_PlaceSingleOrder";
                    map_string[CMD_GAIN_PlaceSingleOrderResult] = "CMD_GAIN_PlaceSingleOrderResult";
                    map_string[CMD_GAIN_ModifySingleOrder] = "CMD_GAIN_ModifySingleOrder";
                    map_string[CMD_GAIN_ModifySingleOrderResult] = "CMD_GAIN_ModifySingleOrderResult";
                    map_string[CMD_GAIN_GetPositionBlotter] = "CMD_GAIN_GetPositionBlotter";
                    map_string[CMD_GAIN_GetPositionBlotterResult] = "CMD_GAIN_GetPositionBlotterResult";
                    map_string[CMD_GAIN_ModifySingleASSPOrder] = "CMD_GAIN_ModifySingleASSPOrder";
                    map_string[CMD_GAIN_ModifySingleASSPOrderResult] = "CMD_GAIN_ModifySingleASSPOrderResult";
                    map_string[CMD_GAIN_DealRequest] = "CMD_GAIN_DealRequest";
                    map_string[CMD_GAIN_DealRequestResult] = "CMD_GAIN_DealRequestResult";
                    map_string[CMD_GAIN_GetPositionBlotterDataSet] = "CMD_GAIN_GetPositionBlotterDataSet";
                    map_string[CMD_GAIN_GetPositionBlotterDataSetResult] = "CMD_GAIN_GetPositionBlotterDataSetResult";
                    map_string[CMD_GAIN_GetDealBlotterWithFilter] = "CMD_GAIN_GetDealBlotterWithFilter";
                    map_string[CMD_GAIN_GetDealBlotterWithFilterResult] = "CMD_GAIN_GetDealBlotterWithFilterResult";
                    map_string[CMD_GAIN_GetOrderBlotterDataSet] = "CMD_GAIN_GetOrderBlotterDataSet";
                    map_string[CMD_GAIN_GetOrderBlotterDataSetResult] = "CMD_GAIN_GetOrderBlotterDataSetResult";
                    map_string[CMD_GAIN_GetOrderBlotter] = "CMD_GAIN_GetOrderBlotter";
                    map_string[CMD_GAIN_GetOrderBlotterResult] = "CMD_GAIN_GetOrderBlotterResult";
                    map_string[CMD_GAIN_GetRatesDataSet] = "CMD_GAIN_GetRatesDataSet";
                    map_string[CMD_GAIN_GetRatesDataSetResult] = "CMD_GAIN_GetRatesDataSetResult";
                    map_string[CMD_GAIN_GetRatesServerAuth] = "CMD_GAIN_GetRatesServerAuth";
                    map_string[CMD_GAIN_GetRatesServerAuthResult] = "CMD_GAIN_GetRatesServerAuthResult";
                    map_string[CMD_GAIN_DealRequestByDealId] = "CMD_GAIN_DealRequestByDealId";
                    map_string[CMD_GAIN_DealRequestByDealIdResult] = "CMD_GAIN_DealRequestByDealIdResult";
                    map_string[CMD_GAIN_GetSymbolBlotter] = "CMD_GAIN_GetSymbolBlotter";
                    map_string[CMD_GAIN_GetSymbolBlotterResult] = "CMD_GAIN_GetSymbolBlotterResult";
                    map_string[CMD_GAIN_CancelOrder] = "CMD_GAIN_CancelOrder";
                    map_string[CMD_GAIN_CancelOrderResult] = "CMD_GAIN_CancelOrderResult";
                    map_string[CMD_GAIN_DealRequestAtBest] = "CMD_GAIN_DealRequestAtBest";
                    map_string[CMD_GAIN_DealRequestAtBestResult] = "CMD_GAIN_DealRequestAtBestResult";
                    map_string[CMD_GAIN_ModifyOCOASSPOrder] = "CMD_GAIN_ModifyOCOASSPOrder";
                    map_string[CMD_GAIN_ModifyOCOASSPOrderResult] = "CMD_GAIN_ModifyOCOASSPOrderResult";
                    map_string[CMD_GAIN_GetMarginBlotter] = "CMD_GAIN_GetMarginBlotter";
                    map_string[CMD_GAIN_GetMarginBlotterResult] = "CMD_GAIN_GetMarginBlotterResult";
                    map_string[CMD_GAIN_PlaceSingleASSPOrder] = "CMD_GAIN_PlaceSingleASSPOrder";
                    map_string[CMD_GAIN_PlaceSingleASSPOrderResult] = "CMD_GAIN_PlaceSingleASSPOrderResult";
                    map_string[CMD_GAIN_GetDealBlotter] = "CMD_GAIN_GetDealBlotter";
                    map_string[CMD_GAIN_GetDealBlotterResult] = "CMD_GAIN_GetDealBlotterResult";
                    map_string[CMD_GAIN_PlaceOCOASSPOrder] = "CMD_GAIN_PlaceOCOASSPOrder";
                    map_string[CMD_GAIN_PlaceOCOASSPOrderResult] = "CMD_GAIN_PlaceOCOASSPOrderResult";
                    map_string[CMD_GAIN_GetAccountObject] = "CMD_GAIN_GetAccountObject";
                    map_string[CMD_GAIN_GetAccountObjectResult] = "CMD_GAIN_GetAccountObjectResult";
                }
            };

            ===================================================================================================================

            使用

            string str = Gain_Map_String::GetStringByCmd(CMD_GAIN_PlaceSingleOrder);
            UINT cmd = Gain_Map_String::GetCmdByString("CMD_GAIN_PlaceSingleOrder");

            ===================================================================================================================

            優(yōu)點(diǎn)

            1、延時(shí)加載,使用時(shí)再加載,不使用不會(huì)存在;

            2、減少全局對(duì)象,以及在代碼中出現(xiàn)的全局對(duì)象的變量名,這種代碼耦合也很煩人;

            3、容易定位到所有使用了該類的代碼中,最好是定義一個(gè)宏來得到指針,比如:GET_CLASS_A_PTR

            ===================================================================================================================

            注意事項(xiàng)

            1、只適合于生一個(gè)一個(gè)對(duì)象的類;

            posted on 2008-06-07 22:00 肥仔 閱讀(416) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++ 基礎(chǔ)

            久久国产亚洲精品无码| 亚洲伊人久久成综合人影院 | 97久久国产亚洲精品超碰热 | 欧美与黑人午夜性猛交久久久| 久久只有这里有精品4| 99精品国产综合久久久久五月天| 亚洲国产精品久久久久久| 久久久网中文字幕| 久久久噜噜噜久久熟女AA片| 久久99精品久久久久久水蜜桃| 久久笫一福利免费导航| 精品久久久久久无码免费| 色婷婷综合久久久久中文一区二区 | 伊人久久大香线蕉AV一区二区| 国产精品久久久久影院嫩草 | 久久久久成人精品无码中文字幕| 精品国产91久久久久久久a | 国产精品免费久久久久久久久| 久久亚洲私人国产精品vA| 亚洲精品国产综合久久一线| 99久久免费国产精品| 大伊人青草狠狠久久| 久久精品99久久香蕉国产色戒| 热久久国产欧美一区二区精品 | 亚洲午夜久久影院| 国内精品伊人久久久久av一坑| 久久婷婷五月综合色奶水99啪| 久久精品国产亚洲Aⅴ香蕉| 亚洲国产成人久久综合碰碰动漫3d| 久久久婷婷五月亚洲97号色| 久久久久亚洲AV无码麻豆| 人人妻久久人人澡人人爽人人精品| 久久一区二区免费播放| 亚洲人成无码网站久久99热国产| 久久青青草原精品国产软件| 无码国内精品久久人妻麻豆按摩| 热综合一本伊人久久精品| 亚洲欧美成人久久综合中文网 | 亚洲一区精品伊人久久伊人| 蜜臀久久99精品久久久久久| 香蕉久久一区二区不卡无毒影院|