Controls Life Cycle
      Example
result Devmento ::OnInitializing(void) {           result Devmento::OnTerminating(void) {

result r = E_SUCCESS;                                  result r = E_SUCCESS;
                                                       delete pPopup;
__pPopup = new Popup();                                return r;

Dimension dim(300, 400);                           }

__pPopup->Construct(true, dim);

__pPopup->SetTitleText(L"Popup Test");

Button* pBtnClose = new Button();

pBtnClose->Construct(Rectangle(10, 10, 250, 60),
L"Close");

pBtnClose->SetActionId(ID_BUTTON_CLOSE_POPUP);

pBtnClose->AddActionEventListener(*this);

__pPopup->AddControl(*pBtnClose);

}
Collection


                  IMap
                IMap
       IStack


                         QueueT


                 IList




                         1. Object-based collections

                         2. Template-based collections
Collection

               1.   Object-based collections에서 스택 변수를 사용 말자.



      ArrayList* pDataList = new ArrayList();

      pDataList->Construct();

       String aData(L”Test”);

       pDataList.Add(aData);


       String* aData= new String(L”Test”);

       pDataList->Add(*aData);
Collection

               1.   꼭 Remove 관련 함수 호출 시 속성을 꼭 true로 하자.



   result Remove(const Object&obj,bool deallocate=false);
   result RemoveAt(int index, bool deallocate = false);
   Void RemoveAll(bool deallocate = false);




             Object에 대한 메모리 해체 원한다면,

             Remove(10); -> Remove(10,true);
Collection

             2.   꼭 Remove 관련 함수 호출 시 속성을 꼭 true로 하자.




      ArrayList* pDataList = new ArrayList();

      pDataList->Construct();

      String* pData =    new String(L"url:1234567890");

      pDataList->Add(*pData);

      pDataList->RemoveAll(true);

      delete pDataList;
Collection

             3.   Template-based collections



     ArrayListT<int> list;

     list.Construct();

     int int1 = 1;

     int int2 = 2;

     list.Add(int1);

     list.Add(int2);
Collection

               3.   Template-based collections


   virtual result Sort (const IComparerT< Type > &comparer)

                              <<interface>>
                              ICollectionT




                              <<interface>>
                                 IListT




               ArrayListT      LinkedListT




                              <<interface>>
                              IComparerT
Collection

                 3.    Template-based collections




   ArrayListT<Log*> Logs;

   Logs.Construct();

   LogTotalPointerSort<Log*>* compare = new LogTotalPointerSort<Log*>();

   Logs.Sort(*compare);
Collection

                           3.   Template-based collections

   template<class Type>
   class LogTotalPointerSort: public Osp::Base::Collection::IComparerT<Type> {
   public:

   virtual result Compare(const Type& obj1, const Type& obj2, int& cmp) const {

   result r = E_SUCCESS;
   Log* p1 = const_cast<Log*> (obj1);
   Log* p2 = const_cast<Log*> (obj2);

            if(p1->TotalPoint < p2->TotalPoint)
            {
               cmp = 1;
            }
            else if(p1->TotalPoint > p2->TotalPoint)
            {
               cmp = -1;
            }
            else
            {
               cmp = 0;
            }

        return r;
    }

   };
bada Reviews


                      절차적



                               메타
               일반화   다중패러다임   프로그래밍

                     프로그래밍


                      C++
                객체            함수식
                지향
bada Reviews

삼성 바다 앱개발 실패 노하우 2부

  • 1.
    Controls Life Cycle Example result Devmento ::OnInitializing(void) { result Devmento::OnTerminating(void) { result r = E_SUCCESS; result r = E_SUCCESS; delete pPopup; __pPopup = new Popup(); return r; Dimension dim(300, 400); } __pPopup->Construct(true, dim); __pPopup->SetTitleText(L"Popup Test"); Button* pBtnClose = new Button(); pBtnClose->Construct(Rectangle(10, 10, 250, 60), L"Close"); pBtnClose->SetActionId(ID_BUTTON_CLOSE_POPUP); pBtnClose->AddActionEventListener(*this); __pPopup->AddControl(*pBtnClose); }
  • 3.
    Collection IMap IMap IStack QueueT IList 1. Object-based collections 2. Template-based collections
  • 4.
    Collection 1. Object-based collections에서 스택 변수를 사용 말자. ArrayList* pDataList = new ArrayList(); pDataList->Construct(); String aData(L”Test”); pDataList.Add(aData); String* aData= new String(L”Test”); pDataList->Add(*aData);
  • 5.
    Collection 1. 꼭 Remove 관련 함수 호출 시 속성을 꼭 true로 하자. result Remove(const Object&obj,bool deallocate=false); result RemoveAt(int index, bool deallocate = false); Void RemoveAll(bool deallocate = false); Object에 대한 메모리 해체 원한다면, Remove(10); -> Remove(10,true);
  • 6.
    Collection 2. 꼭 Remove 관련 함수 호출 시 속성을 꼭 true로 하자. ArrayList* pDataList = new ArrayList(); pDataList->Construct(); String* pData = new String(L"url:1234567890"); pDataList->Add(*pData); pDataList->RemoveAll(true); delete pDataList;
  • 7.
    Collection 3. Template-based collections ArrayListT<int> list; list.Construct(); int int1 = 1; int int2 = 2; list.Add(int1); list.Add(int2);
  • 8.
    Collection 3. Template-based collections virtual result Sort (const IComparerT< Type > &comparer) <<interface>> ICollectionT <<interface>> IListT ArrayListT LinkedListT <<interface>> IComparerT
  • 9.
    Collection 3. Template-based collections ArrayListT<Log*> Logs; Logs.Construct(); LogTotalPointerSort<Log*>* compare = new LogTotalPointerSort<Log*>(); Logs.Sort(*compare);
  • 10.
    Collection 3. Template-based collections template<class Type> class LogTotalPointerSort: public Osp::Base::Collection::IComparerT<Type> { public: virtual result Compare(const Type& obj1, const Type& obj2, int& cmp) const { result r = E_SUCCESS; Log* p1 = const_cast<Log*> (obj1); Log* p2 = const_cast<Log*> (obj2); if(p1->TotalPoint < p2->TotalPoint) { cmp = 1; } else if(p1->TotalPoint > p2->TotalPoint) { cmp = -1; } else { cmp = 0; } return r; } };
  • 12.
    bada Reviews 절차적 메타 일반화 다중패러다임 프로그래밍 프로그래밍 C++ 객체 함수식 지향
  • 13.