ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. Generic Programming
GenericÀº ÀϹÝÀûÀÎ ÃÑĪÇÏ´ÂÀ̶ó´Â ¶æÀ» °¡Áø´Ù. ¼ÒÇÁÆ®¿þ¾î ¿£Áö´Ï¾î¸µ¿¡¼ GenericÀº Generic Programming¸¦ ÀǹÌÇÑ´Ù. Generic Programming´Â ÀϹÝÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¶óÀ̺귯¸®, ¸ðµâ, Ŭ·¡½º¸¦ °³¹ßÇϱâ À§ÇÑ ÇÁ·Î±×·¡¹Ö ±â¹ýÀ» ÀǹÌÇÑ´Ù. Generic Programming¸¦ ÁöÇâÇÏ´Â °¡Àå ¼º°øÀûÀÎ ¶óÀ̺귯¸®´Â STL·Î ANSI/ISO C++ÀÇ Ç¥ÁØÀÌ´Ù.
Á¦³Ê¸¯ ÇÁ·Î±×·¡¹ÖÀº ÇϳªÀÇ ¾Ë°í¸®ÁòÀ¸·Î ´Ù¾çÇÑ µ¥ÀÌŸÀÔÀ» ó¸®Çϸç, ¶ÇÇÑ ¾Ë°í¸®ÁòÀÇ ´Ù¾çÇÑ ÀÀ¿ëÀ» °¡´ÉÇϵµ·Ï Çϴµ¥ ÃÐÁ¡À» ¸ÂÃá´Ù. ¿¹¸¦ µé¾î Quick Sort¸¦ ¾Ë°í¸®ÁòÀ» °³¹ßÇÒ °æ¿ì, Á¦³Ê¸¯ ÇÁ·Î±×·¡¹ÖÀº µ¥ÀÌÅÍ Å¸ÀÔ¿¡ °ü°è ¾øÀÌ ÇϳªÀÇ Äڵ带 »ç¿ëÇϵµ·Ï ÇÑ´Ù. ¶ÇÇÑ ÇϳªÀÇ ¾Ë°í¸®ÁòÀ¸·Î ¿ª Á¤·Ä, ½Ã°£ Á¤·Äµî ´Ù¾çÇÑ ÀÀ¿ëÀÌ °¡´ÉÇϵµ·Ï ÇÑ´Ù.
Generic Programming¸¦ ¼±ÅÃÇÏ´Â ÀÌÀ¯´Â È¿À²¼º°ú (ƯÈ÷)Àç»ç¿ë¼ºÀ» ³ôÀ̱â À§ÇÔÀÌ´Ù. C++ÀÇ °æ¿ì TemplateÀ¸·Î ±¸ÇöÇÑ´Ù. ¿¹¸¦µé¾î STLÀº Templeate¸¦ ÀÌ¿ëÇÑ ÄÁÅ×ÀÌ³Ê¿Í Generic ¾Ë°í¸®ÁòÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
Á¦³Ê¸¯ ÇÁ·Î±×·¡¹ÖÀº Àç»ç¿ë¼º, ¹ü¿ë¼ºÀ» Áß¿äÇÑ ÁöÇâÁ¡À¸·Î ÇÑ´Ù. ÀÌµé ¿ä¼Ò´Â ´ÙÀ½°ú °°Àº Ư¡À¸·Î ´Þ¼ºÇÑ´Ù.
C++¿¡¼ ÀϹÝÀûÀÎ ¹æ¹ýÀ¸·Î Å¥(queue)¸¦ ¸¸µé·Á°í Çϸé, ÀڷᱸÁ¶¸¶´Ù ¼·Î ´Ù¸¥ Á¾·ùÀÇ Å¥¸¦ ¸¸µé¾î¾ß ÇÑ´Ù. ¹®ÀÚ¿À» ÀúÀåÇϱâ À§ÇÑ queue, int ÇüÀ» ÀúÀåÇϱâ À§ÇÑ queue, ±¸Á¶Ã¼¸¦ ÀúÀåÇϱâ À§ÇÑ queue µîÀÌ´Ù. ÀÌ´Â ÁÁ¾Æº¸ÀÌÁö ¾Ê´Â´Ù. µ¿ÀÏÇÑ ÀÏÀ» ÇÏ´Â ´Ù¾çÇÑ ÇÔ¼ö¸¦ ¸¸µé¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. queue´Â ¸ÕÀú ÀÔ·ÂµÈ °ªÀÌ ¸ÕÀú Ãâ·ÂµÈ´Ù¶ó´Â ÀϹÝÀûÀÎ ¼Ó¼ºÀ» °¡Áø´Ù. ±×·¸´Ù¸é queueÀÇ º»·¡ ¼Ó¼º¿¡¸¸ ÀÇÁ¸ÀûÀÎ Äڵ带 ¸¸µé¸é ÁÁÀ» °ÍÀÌ´Ù.
C++ÀÇ ÅÛÇø´À» ÀÌ¿ëÇϸé, ÀÚ·áÇü¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â GenericÇÑ Å¥¸¦ ¸¸µé ¼ö ÀÖ´Ù. Generic Programming¿Í Template Metaprogramming
C++ÀÇ ÅÛÇø´À» ÀÌ¿ëÇÑ Generic ÇÁ·Î±×·¡¹Ö ¹æ½ÄÀº ¾ö¹ÐÈ÷ ¸»ÇÏÀÚ¸é, Template MetaprogrammingÀ¸·Î ºÐ·ùµÈ´Ù. Template Metaprogramming´Â ÇÁ·Î±×·¥À» ¸¸µå´Â ÇÁ·Î±×·¥À» Â¥´Â¹æ½ÄÀÌ´Ù. C++¿¡¼ ÅÛÇø´À» »ç¿ëÇØ¼ Äڵ带 ¸¸µç ÈÄ À̰ÍÀ» c++ ÄÄÆÄÀÏ·¯·Î ÄÄÆÄÀÏÇϸé, ´Ù¾çÇÑ ÀÚ·áÇüÀ» Áö¿øÇϱâ À§ÇÑ ÇÁ·Î±×·¥ Äڵ尡 »ý¼ºµÈ´Ù. ¹®ÀÚ¿, float, int ¸¦ Áö¿øÇÏ´Â ¹ü¿ë Å¥¸¦ ÅÛÇø´À¸·Î ¸¸µé¾ú´Ù¸é, ÀÌ°É ÄÄÆÄÀÏ Çϸé 3°¡Áö ÀÚ·áÇüÀ» À§ÇÑ Äڵ尡 »ý¼ºµÇ´Â ½ÄÀÌ´Ù.
C++ ÅÛÇø´À» »ç¿ëÇØ¼ Generic Programming¸¦ ÇÏ´Ùº¸¸é, ÄÚµå Æø¹ßÀ̶ó´Â Çö»óÀ» °æÇèÇϱ⵵ Çϴµ¥, °¢ ŸÀÔº°·Î Äڵ带 ¸¸µé¾î³»´Â Ư¡¿¡ ±âÀÎÇÑ´Ù. Äڵ尡 Æø¹ßÇÏ°Ô µÇ´Ï, µð¹ö±ëµµ ±×¸¸Å Èûµé´Ù. °³¹ßÀÚ°¡ ¸¸µé¾î³½ Äڵ尡 ¾Æ´Ñ, Äڵ尡 »ý¼ºÇÑ Äڵ忡¼ ¿¡·¯¿Í °æ°í°¡ ¹ß»ýÇϱ⠶§¹®ÀÌ´Ù. STLÀÌ µð¹ö±ëÀÌ ±î´Ù·Ó±â·Î À¯¸íÇÑ ÀÌÀ¯´Ù.
Generic Programming´Â ¾Ë°í¸®ÁòÀ» ÀϹÝÈ ÇÏ´Â °ÍÀ̹ǷÎ, µÑ¿¡ Â÷À̰¡ ÀÖ´Ù°í ÇϰڴÙ. ±×·¯³ª Generic programming¸¦ ´Ù·ç´Ù º¸¸é, °á±¹ Template MetaprogrammingÀÇ ÄÚµå »ý¼º¹æ½Äµµ ÇÔ²² °í¹ÎÇÏ°Ô µÇ¹Ç·Î, µüÈ÷ µÑÀ» ¾ö°ÝÇÏ°Ô ±¸ºÐÇÒ ÇÊ¿ä´Â ¾ø¾îº¸ÀδÙ. Generic Programming¿¡¼ Template Metaprogramming¸¦ ´Ù·ç´Â ÀÌÀ¯´Â, ¾ð¾î¸¦ °è¼Ó È®Àå ½ÃŰ´Â °ÍÀ¸·Î¸¸Àº Generic Programming¸¦ ÁöÇâÇϱⰡ ±î´Ù·Ó±â ¶§¹®ÀÌ´Ù. Template Metaprogramming´Â ¾ð¾î¸¦ È®Àå½ÃŰÁö ¾ÊÀ¸¸é¼µµ, Generic ProgrammingÀ» ´Þ¼ºÇϱâ À§ÇÑ ½¬¿î ¹æ¹ýÀ» Á¦°øÇÑ´Ù.
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|