一些慣用的編碼手法

定義顯示的宏的來完成一些顯示的常規的動作。
定義枚舉來做顯示分類示例說明。
類函數直接返回它的枚舉值。
怎樣寫一個單例模式。
怎樣默認產生類默認生成的函數。
賦值兼容規則:
類對象,類引用,類指針和類的
函數指針的聲明和使用
typedef TDataWrapper* (*CRT_DB_PTR)(void);
用結構體來封裝函數指針或者一些常用的東西
struct TCmdFactory
{
    CRT_CMD_REQ_PTR pCmdReq;
    CRT_ACT_PTR pAction;
    CRT_DB_PTR  pDataWrapper;
   
    TCmdFactory(){
        pCmdReq = NULL;
        pAction = NULL;
        pDataWrapper = NULL;       
    };
};
typedef 的使用
typedef TLibMsg* PTSmfMsg;
stl 模板數據類型的重複使用 。一個模板作爲另一個模板的元素使用。複合構造stl模板數據類型。
把多個數據集類放在一個類中來使用。全當是做數據的封裝。
指針的使用最多三級。指針成員指導使用最多也是三級。
函數指針的定義  typedef string (*FUNC_BUILD_UID)();
新寫法:
string intToStr(int iSource)
{
#ifdef WIN32   //在函數中通過判斷
    _snprintf(chBuff, MAX_INT_LEN, "%d", iSource);
#else
    snprintf(chBuff, MAX_INT_LEN, "%d", iSource);
#endif
 
}

clone 一個數據怎麼寫 怎麼寫一個clone 函數
void TAppEirImeiData::clone(const TAppEirImeiData &srcData)
{   
}

一個數據:
typedef TXmlLib* (*CRT_XML_LIB_PTR)(void);
extern map<string, CRT_XML_LIB_PTR> g_mapXMLLibFactory;


向量函數指針:
指針向量做函數參數
void TDataItem::setValue(const vector<TAppData*> &vecValue)
{  
    m_vecData = vecValue;
}
返回一個函數指針向量
vector<TDataItem*> TDataTeam::getValue()
{   
    return m_vecData;
}

結構體的定義:
typedef struct struct_name{}new_structName; 結構體和枚舉都可以

stl的使用
DLL_EXP int gu_make_mml_func_callback_3(std::vector<NewService_Mapping*> & newservice,
        std::vector<string>& mmlList);

DLL_EXP void LibRegBuildUID(FUNC_BUILD_UID pFunc);   FUNC_BUILD_UID函數指針是一種類型

將new和delete定義成宏的形式。避免野指針的形成。

怎樣定義一堆的宏,然後讓一堆的宏去定義結構體。

return *this; //返回this指針對象的值也就是是一個對象

//判斷兩個對象的值是否相等
if (this == &rhs)
        {
            return *this; 
        }                   

函數指針定義全局變量。(函數指針是一個類型)
FUNC_AddFSMType         g_funcAddFsmType = NULL;

const面表示該函數const函數即函數會修改類數據成員前面const 表示返回值const類型當返回引用時想該引用被作左值時應該用const前面修飾


奇葩的類
class SQLAPI_API SAValue : public SAValueRead
{
    friend class ISACursor;
    friend class IibCursor;
    friend class IssDBLibCursor;
    friend class Iora7Cursor;
    friend class Iora8Cursor;
    friend class IoraCursor;
    friend class IsbCursor;
    friend class IodbcCursor;
    friend class Idb2Cursor;
    friend class IinfCursor;
    friend class IsybCursor;
    friend class ImyCursor;
    friend class IpgCursor;
    // ***BEGIN*** 2003-07-07 by ZhangZongchu added SQLAPIV100R002.4 D26481
    friend class SACommand;
    // ***END*** 2003-07-07 by ZhangZongchu added SQLAPIV100R002.4 D26481

private:
    bool    m_bInternalUseDefault;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章