class CLazyInitializeTest
{
private:
        char* m_pszData;
        CBigSizeClass m_bigSizeClass;

public:
        CLazyInitializeTest();
        CLazyInitializeTest(cont CLazyInitializeTest&);
        ~CLazyInitializeTest()
        void Initalize(); // 초기화 함수
        void CheckInitialize(); // 초기화가 된 상태인지 체크

        void Method1()
        {
                if (CheckInitalize() == false)
                        Initailize();

                ~~~
        }

        void Method2()
        {
                if (CheckInitalize() == false)
                        Initailize();

                ~~~
        }

        void Method3()
        {
                if (CheckInitalize() == false)
                        Initailize();

                ~~~
        }
};


이렇게

if (CheckInitalize() == false)
        Initailize();        

이거 중복되는거 어쩔수 없는건가..?