• <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ǔ)

            中文字幕久久欲求不满| 老男人久久青草av高清| 久久精品嫩草影院| 久久99精品久久久久久噜噜| 少妇熟女久久综合网色欲| 韩国免费A级毛片久久| 久久国产精品一区| 亚洲中文字幕久久精品无码APP | 久久精品无码一区二区日韩AV| 无码任你躁久久久久久老妇App| 精品久久久久中文字幕日本| 色婷婷久久综合中文久久一本| 99久久精品毛片免费播放| 青春久久| 色偷偷88欧美精品久久久| 成人a毛片久久免费播放| 久久精品亚洲日本波多野结衣 | 99久久国产精品免费一区二区 | 93精91精品国产综合久久香蕉| 97久久国产综合精品女不卡| 亚洲精品美女久久久久99小说| 久久国产精品久久国产精品| 久久强奷乱码老熟女网站| 久久精品无码一区二区三区免费| av无码久久久久不卡免费网站 | 久久久久国产一级毛片高清版| 日日躁夜夜躁狠狠久久AV| 中文字幕热久久久久久久| 国色天香久久久久久久小说| 久久午夜无码鲁丝片秋霞 | 久久婷婷五月综合色99啪ak| 99久久精品国产综合一区 | 五月丁香综合激情六月久久| 色欲久久久天天天综合网精品| 99久久国产宗和精品1上映| 亚洲香蕉网久久综合影视| 综合久久国产九一剧情麻豆| 人妻丰满AV无码久久不卡| 久久精品国产网红主播| 成人妇女免费播放久久久| 99久久婷婷国产综合精品草原|