C++ Programming
 FrontPage|FindPage|TitleIndex|RecentChanges|UserPreferences E D R S P I M H RSS

Cg ¿Í HLSL ProgrammingClassDesignCodeOptimizationCollision DetectionConcurrencyPatterns › CppProgramming
Contents:
1 °³¿ä
2 °ü·Ã¼­Àû
3 Áֿ丵ũ
4 Technical Articles
5 Useful Classes
6 Windows API ÀÇ Class ¸¸µé±â
6.1 Window Framework Class
6.2 Child Window Class
6.3 Message Handler
7 Class ¸¦ ÀÌ¿ëÇÑ Àü¿ªº¯¼ö ¸¸µé±â
8 Programming Tips
8.1 Á¤¼ö¿Í ½Ç¼öÀÇ ÃÖ´ë,ÃÖ¼Ò°ªÀº ¾ó¸¶Àϱî?
8.2 Visual C++ ¿¡¼­ ÆÄÀÏÀ̳ª µð·ºÅ丮¿Í °ü·ÃµÈ MAX °ªÀº ¾ó¸¶Àϱî?
8.3 µû¿ÈÇ¥("") ¾È¿¡ ÀÖ´Â ¹®ÀÚ¿­ Àбâ
9 ´Ù¿î·Îµå
10 °ü·Ã¸µÅ©


1 °³¿ä #



2 °ü·Ã¼­Àû #


  • C++ ±âÃÊ Ç÷¯½º Á¦3ÆÇ
    • Stephen Prata Àú, À̵µÈñ ¿ª, ¼º¾È´ç
  • More Effective C++
    • Scott Meyers Àú, °û¿ëÀç ¿ª, ÀÎÆ÷ºÏ


3 Áֿ丵ũ #


4 Technical Articles #


5 Useful Classes #


6 Windows API ÀÇ Class ¸¸µé±â #


WinAPI ¸¸À» ÀÌ¿ëÇÏ¿© À©µµ¿ì ÇÁ·Î±×·¡¹ÖÀ» ÇÑ´Ù´Â °ÍÀº ½¬¿îÀÏÀÌ ¾Æ´Ï´Ù. °£´ÜÈ÷ âÀ» ¿­°í ´Ý´Â °úÁ¤¸¸ ÇØµµ 100 ¿© ¶óÀÎÀ» ³Ñ°Ü¹ö¸®±â Àϼö´Ù. ±×¸®°í ¸Å¹ø °ÅÀÇ ¶È°°Àº Äڵ带 ÇÊ¿ä·Î ÇÑ´Ù. ±×·¡¼­ WinAPI ¸¦ ³ª¸§´ë·Î Ŭ·¡½ºÈ­ÇÏ¿© ÀÌ¿ëÇϰí ÀÖ´Ù. MFC ¿Í °°Àº ÁÁÀº Framework µµ ÀÖÁö¸¸ °£´ÜÇÑ À©µµ¿ì ÇÁ·Î±×·¥À» ¸¸µé±â¿¡´Â µ¢Ä¡°¡ Á» Å« ÆíÀÌ´Ù. ±×¸®°í WinAPI ¸¦ Ŭ·¡½ºÈ­ Çϸ鼭 ³ª¸§´ë·Î ÇÁ·Î±×·¡¹Ö¿¡ Àç¹Ìµµ ´À³¥ ¼ö ÀÖ´Ù. ƯÈ÷ C++ ÀÇ Å¬·¡½º¿¡ ´ëÇÏ¿© ÁÁÀº °æÇèÀÌ µÉ °ÍÀ̶ó°í »ý°¢ÇÑ´Ù. ±×·³ WinAPI ¸¦ ¾î¶»°Ô Ŭ·¡½ºÈ­ ÇÒ °ÍÀΰ¡¿¡ ´ëÇÏ¿© À̾߱â ÇØº¸ÀÚ.

6.1 Window Framework Class #


icon ÀÚ·á Á¤¸® Áß

6.2 Child Window Class #


icon ÀÚ·á Á¤¸® Áß

6.3 Message Handler #


¸Þ¼¼Áö ¸ÊÀÇ µ¥ÀÌŸÇü°ú Ŭ·¡½ºÀÇ ÇÔ¼ö Æ÷ÀÎÅ͸¦ ¼±¾ðÇÑ´Ù.

 1  class CView;
 2
 3  typedef void( CView::*CViewFunPointer )();
 4  typedef struct tagMessageMap
 5  {
 6      UINT iMsg;
 7      CViewFunPointer fp;
 8  } MessageMap;
 9
10  static CViewFunPointer fpCViewGlobal;
11
12  CView app;

¸Þ½ÃÁö ¸Ê¿¡ ¸ÊÇÎÇÒ ¸â¹ö ÇÔ¼ö¸¦ Á¤ÀÇÇÑ´Ù.

1  class CView
2  {
3  public:
4      static MessageMap messageMap[];
5  public:
6      void OnCreate();
7      void OnDraw();
8      void OnDestroy();
9  };

¸Å¼¼Áö ¸Ê¿¡ Ŭ·¡½º ÇÔ¼ö¸¦ ¸ÊÇÎÇÑ´Ù.

1  MessageMap CView::messageMap[] = {
2      { WM_CREATE,  CView::OnCreate },
3      { WM_PAINT,   CView::OnDraw },
4      { WM_DESTROY, CView::OnDestroy },
5      { 0, NULL }
6  };

À©µµ¿ì ¸Þ¼¼Áö ÇÁ·Î½ÃÀú¿¡¼­ ¸Þ¼¼Áö ¸Ê 󸮸¦ ÇÑ´Ù.

 1  LRESULT CALLBACK WndProc( HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam )
 2  {
 3      int i = 0;
 4      while( CView::messageMap[i].iMsg != 0 )
 5      {
 6          if ( iMsg == CView::messageMap[i].iMsg )
 7          {
 8              fpCViewGlobal = CView::messageMap[i].fp;
 9              (app.*fpCViewGlobal) ();
10              return 0;
11          }
12          ++i;
13      }
14      return DefWindowProc( hWnd, iMsg, wParam, lParam );
15  }


7 Class ¸¦ ÀÌ¿ëÇÑ Àü¿ªº¯¼ö ¸¸µé±â #


C/C++ »Ó¸¸ ¾Æ´Ï¶ó ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­µµ Àü¿ªº¯¼ö´Â »ç¿ëÇÏ±â Æí¸®ÇÏ´Ù. ±×·¯³ª ÀÌ·¯ÇÑ Æí¸®¼ºµµ ÇÑÆíÀ¸·Î´Â ¾ç³¯ÀÇ °ËÀ¸·Î ÀÛ¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌÀ¯´Â Á÷Á¢ À̾߱âÇÏÁö ¾Ê´õ¶óµµ ¿©·¯ ÇÁ·Î±×·¡¹Ö ¾ð¾î ¹®¹ýÃ¥ µî¿¡¼­ ½±°Ô ãÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. ´ëºÎºÐÀº Àü¿ªº¯¼ö¸¦ ÃÖ´ëÇÑ ÁÙÀ̶ó°í ÇÏÁö¸¸ ÇÊ¿äÇÒ ¶§´Â ²À ½á¾ß ÇÑ´Ù. ÀÌ·²¶§ C++ ¿¡¼­´Â Ŭ·¡½ºÀÇ »ó¼ÓÀ» ÀÌ¿ëÇÏ¿© ¼Õ½±°Ô ÇØ°áÇÒ ¼ö ÀÖ´Ù.

°³³äÀº °£´ÜÇÏ´Ù. ÃÖ»óÀ§ Base Ŭ·¡½º¸¦ Çϳª Á¤ÀÇÇÑ ÈÄ °Å±â¿¡ ÇØ´ç º¯¼ö¸¦ ¼±¾ðÇÑ ÈÄ »ó¼Ó ¹ÞÀ¸¸é µÈ´Ù. ÇÏÁö¸¸ ±×·¸°Ô ÇÑ´Ù¸é µ¶¸³µÈ ¿µ¿ª¿¡ º¯¼ö°¡ »ý¼ºµÇ¾î °øÀ¯ÇÒ ¼ö ¾ø°Ô µÈ´Ù. À̶§ Ŭ·¡½ºÀÇ Storage Class Áß¿¡¼­ static À» ÀÌ¿ëÇϸé ÀÌ·¯ÇÑ ¹®Á¦¸¦ ½±°Ô ÇØ°áÇÒ ¼ö ÀÖ´Ù. static º¯¼ö´Â °´Ã¼°¡ ¾Æ¹«¸® ¸¹ÀÌ »ý¼ºµÇ¾îµµ ÇϳªÀÇ °ø°£¸¸ Á¸ÀçÇÏ°Ô µÇ¹Ç·Î Àü¿ª º¯¼öÀÇ ¿ªÈ°À» ÃæºÐÈ÷ ÇÒ ¼ö ÀÖ´Ù. ±×¸®°í ÀϹÝÀûÀÎ Àü¿ªº¯¼ö¿Í´Â ´Þ¸® Ŭ·¡½º ³»¿¡ ¼±¾ðµÇ¹Ç·Î ¸â¹ö ÇÔ¼ö¸¦ ¸¸µé¾î µÐ´Ù¸é ¾ÈÀüÇÏ°Ô Àü¿ª º¯¼ö¿¡ Á¢±ÙÇÒ ¼ö ÀÖ°Ô µÈ´Ù.


8 Programming Tips #


8.1 Á¤¼ö¿Í ½Ç¼öÀÇ ÃÖ´ë,ÃÖ¼Ò°ªÀº ¾ó¸¶Àϱî? #


C/C++ ÇÁ·Î±×·¡¹ÖÇϸ鼭 °£È¤ µ¥ÀÌŸÇüÀÇ ÃÖ¼Ò°ª°ú ÃÖ´ë°ªÀÌ ÇÊ¿äÇÑ °æ¿ì°¡ ¸¹´Ù. º¸ÅëÀº ±×³É ÀÓÀÇÀÇ °ª¸¦ ÁöÁ¤ÇÏ¿© »ç¿ëÇÑ´Ù. ±×·¯³ª C/C++ ¿¡¼­´Â ´ÙÀ½°ú °°Àº Ç¥ÁذªÀ» Á¦°øÇϰí ÀÖ´Ù.

  • Á¤¼öÀÇ ÃÖ´ë,ÃÖ¼Ò°ª
    • LIMITS.H ÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖ´Ù.
    • INT_MAX, INT_MIN, CHAR_MAX, CHAR_MIN, LONG_MAX, LONG_MIN, ...
    • Signed Çü°ú Unsigned ÇüÀ¸·Î ±¸ºÐÇÏ¿© Á¤ÀÇ µÇ¾î ÀÖÀ½, Çì´õ ÆÄÀÏ Âü°í.

  • ½Ç¼öÀÇ ÃÖ´ë,ÃÖ¼Ò°ª
    • FLOAT.H ÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖ´Ù.
    • FLT_MAX, FLT_MIN, DBL_MAX, DBL_MIN, LDBL_MAX, LDBL_MIN, ...

8.2 Visual C++ ¿¡¼­ ÆÄÀÏÀ̳ª µð·ºÅ丮¿Í °ü·ÃµÈ MAX °ªÀº ¾ó¸¶Àϱî? #


À©µµ¿ìÁî ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¶§ ÆÄÀϸíÀ̳ª µð·ºÅ丮¸íÀ» ¾î´ÀÁ¤µµ ±æÀÌ·Î Á¤ÇؾßÇÒÁö °í¹ÎµÉ ¶§°¡ ¸¹´Ù. ÇÏÁö¸¸ ¾Æ·¡¿Í °°ÀÌ MAX °ªÀÌ Á¤ÀǵǾî ÀÖ´Ù. ±×·¯³ª Ç¥ÁØ C/C++ ¿¡´Â Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù.

  • windef.h ÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖ´Ù.
    • MAX_PATH

  • stdlib.h ÆÄÀÏ¿¡ Á¤ÀǵǾî ÀÖ´Ù.
    • _MAX_PATH, _MAX_DRIVE, _MAX_DIR, _MAX_FNAME, _MAX_EXT

8.3 µû¿ÈÇ¥("") ¾È¿¡ ÀÖ´Â ¹®ÀÚ¿­ Àбâ #


°£È¤ ÅØ½ºÆ® ÆÄÀÏ¿¡¼­ ¹®ÀÚ¿­À» ÀÐÀ»¶§ µû¿ÈÇ¥ ( "" ) »çÀÌ¿¡ ÀÖ´Â ¹®ÀÚ¿­À» Àоî¾ßÇÒ °æ¿ì°¡ ÀÖ´Ù. ±×·¯³ª ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» ¸ð¸£¸é µû¿ÈÇ¥¸¦ ÀÏÀÏÀÌ ¶§³»¾ßÇÏ´Â ¼ö°í (?) ¸¦ ÇØ¾ßÇÑ´Ù.

  • scanf() ÇÔ¼ö °è¿­ÀÇ Çü½Ä¹®ÀÚ¸¦ »ç¿ëÇÑ´Ù.
    [ ] ( square brackets ) ¹®ÀÚ¸¦ »ç¿ëÇÑ´Ù.

  • ¿¹Á¦ - sscanf() ÇÔ¼ö
    sscanf( buffer, "\"%[^\"]\"", token );
    


9 ´Ù¿î·Îµå #



10 °ü·Ã¸µÅ© #



SubCategoryCpp

EditText|FindPage|DeletePage|LikePages| Valid XHTML 1.0! Valid CSS! powered by MoniWiki