????????C++д??????????????????????????????????????????????????磺

    if (map.exists(var1.getName()) { 
        process(map.get(var1.getName())); 
    }

???????????к???????var?????????????????????С??????????????????????????д???????????????????????????????????4??????????????

????1????????г??????

???????????private??????????????????????????????????????Ч????????г??????????????inline???????

    // @(#) MyClass.h
    class MyClass ...{ 
        // ......
    private: 
        void handle(Type& var) ...{ 
            if (map.exists(var.getName()) ...{ 
                process(map.get(var.getName()); 
            } 
        } 
    }; 
    // @(#) MyClass.cpp
    void MyClass::Handling(void) ...{ 
        // ......
        handle(var1); 
        handle(var2); 
        // ...
        handle(varn); 
    }

?????????????????????????????????????????inline??????????????????????У??????????????????????inline????????Ч??????????????????????????????????????????????????????????????????????????????????????

????2?????嵱???????????????

???????????1??????е??????????——?????????????????????MyClass.cpp?У????????????????塣???????????????????????????????????????????????????cpp????е????????????????????????????static????????

    // @(#) MyClass.cpp
    inline static void handle(Type& var) ...{ 
        if (map.exists(var.getName()) ...{ 
            process(map.get(var.getName()); 
        } 
    } 
    void MyClass::Handling(void) ...{ 
        // ......
        ::handle(var1); 
        ::handle(var2); 
        // ...
        ::handle(varn); 
    }

???????????????????????????????????????Ч????????????handle?????????????????MyClass::Handling?е?????????????????MyClass::Handling???????в??????MyClass::Handling???????????????????????????handle?????????Щ?????л???????????????????κ????????????

????????????????????????——

????3????????ж????????ú????????

????????????????#define?????????????????????????????????????б????????????????????#undefine?????ú????塣???????????????????????????????Щ???????????

    // @(#) MyClass.cpp
    void MyClass::Handling(void) ...{ 
        // .....
    #define __HANDLE(VAR) 
        if (map.Exists(VAR.getName())  
        Process(map.get(VAR.getName()); 
        __HANDLE(var1); 
        __HANDLE(var2); 
        // ...
        __HANDLE(varn); 
    #undef __HANDLE
    }

???????????????????е????????????????????????????——????????ж???__HANDLE??#undefine??????????????????????????????????????????????????????庯??????????C++??????????????庯??????????????и?????????——?????

????4??????????

????????????????????????????????????????????????????о???????????????????????????е???????????????????????????????????t???????????£?

    // @(#) MyClass.cpp
    void MyClass::Handling(void) ...{ 
        // ......
        class T ...{ 
        public: 
            T(MapType& map) : m_Map(map) ...{} 
            void handle(Type& var) ...{ 
                if (m_Map.exists(var.getName()) ...{ 
                    process(m_Map.get(var.getName()); 
                } 
            } 
        private: 
            MapType& m_Map; 
        } t(map); 
        t.handle(var1); 
        t.handle(var2); 
        // ...
        t.handle(varn); 
    }

???????C++??????????????????á????????????????????Ц??????????????????“???????”??????д??????????????????????????????????Ч????Ρ???????????????????????????????е?ò??????

????С??

??????????????????????н??м???????????????С????????Щ???????????????????????????????????????????????????λ???????????