더 알기 쉬운 코드를 쓰다
3238 단어 코드
아래의 이 종류의 정의는 만약 주석이 없다면, 너는 매우 힘들게 알아볼 수 있을 것이다
// Map
//IDispatchImplMapImpl
//Created On :2013-3-20
//class OBJ_T:
//class T:
// , Map 。Delete
// Key1 map key
// Key , , tstring Key, ,Key1 Key
// Add:insert
// GetCount :
// GetValue Key
// GetValueLine: iterator
// Clear: , Map
template <class Key1,class Key,class OBJ_T, class T, const IID* piid, const GUID* plibid = &CComModule::m_libid, WORD wMajor = 1,
WORD wMinor = 0, class tihclass = CComTypeInfoHolder>
class ATL_NO_VTABLE IDispatchImplMapImpl : public IDispatchImpl<T, piid, plibid, wMajor, wMinor, tihclass>
{
public:
~IDispatchImplMapImpl() { Clear(); }
private:
std::map<Key1, OBJ_T*> m_mapParam;
public:
//
STDMETHOD(Add)(Key key,OBJ_T* obj)
{
ATLASSERT(obj != NULL);
obj->AddRef();
Key1 strRealkey = key;
m_mapParam.insert(std::make_pair(strRealkey, obj));
return S_OK;
}
//
STDMETHOD(GetCount)(/*[out, retval]*/ long *pVal)
{
*pVal = m_mapParam.size();
return S_OK;
}
STDMETHOD(GetValue)(Key key, OBJ_T** obj, /*[out, retval]*/ BOOL *pVal)
{
ATLASSERT(obj != NULL);
*pVal = FALSE;
Key1 findstr = key;
std::map<Key1, OBJ_T*>::iterator ite = m_mapParam.find(findstr);
if(ite != m_mapParam.end()){
*obj = ite->second;
(*obj)->AddRef();
*pVal = TRUE;
}
return S_OK;
}
STDMETHOD(GetValueLine)(Key key, OBJ_T** obj, /*[out, retval]*/ BOOL *pVal)
{//
*pVal = FALSE;
Key1 findstr = key;
std::map<Key1, OBJ_T*>::iterator ite = m_mapParam.begin();
for(;ite != m_mapParam.end();ite++){
if(ite->first == findstr){
*obj = ite->second;
(*obj)->AddRef();
*pVal = TRUE;
break;
}
}
return S_OK;
}
//
STDMETHOD(Clear)()
{
OBJ_T* element = NULL;
map<Key1,OBJ_T*>::iterator ite = m_mapParam.begin();
for(ite; ite != m_mapParam.end(); ite++){
element = ite->second;
if(element){
element->Release();
}
}
m_mapParam.clear();
return S_OK;
}
};
4중괄호 정렬
void fun()
{
if()
{
if()
{
}
}
}
void fun()
{
if(){
if(){
}
}
}
이 두 가지 방법은 모두 일치하고 깔끔한 코드 스타일을 가져올 수 있다.만약 VC 개발을 사용한다면 아래의 이런 효율이 더욱 높고 코드도 더욱 치밀하게 될 것이다.읽기 쉬운 성질은 양자 차이가 많지 않다.만약 하나의 파일이 매우 크다면, 아래의 방식을 채택하면 줄 수를 효과적으로 줄일 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
vue 단일 페이지에 여러 개의 echarts 도표가 있을 때의 공용 코드 쓰기html에서: 데이터 처리는 말할 필요가 없다.응, 직접 그림을 그려: 공통 섹션: 이 페이지를 떠날 때 파괴: 추가 정보: Vue + Echarts 차트 표시 및 동적 렌더링 준비 작업 echarts 의존 설치 n...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.