´ÙÇü¼ºÀº ÇϳªÀÇ ÄÚµå·Î ¿©·¯ °¡Áö µ¿ÀÛÀ» ¼öÇàÇÏ´Â °´Ã¼ÁöÇâÀÇ ¸ÚÁø ´É·ÂÀÌ´Ù. ÀÌ°ÍÀÌ
°¡´ÉÇÑ ÀÌÀ¯´Â È£ÃâÇÒ ¸Þ¼µå¸¦ ÄÄÆÄÀÏÁß¿¡ °áÁ¤ÇÏÁö ¾Ê°í ½ÇÇàÁß¿¡ ¼±ÅÃÇÏ´Â µ¿Àû ¹ÙÀεùÀ» Çϱ⠶§¹®ÀÌ´Ù. º¯¼ö¿¡
½ÇÁ¦ Àü´ÞµÈ °´Ã¼ÀÇ Å¸ÀÔÀ» Á¡°ËÇÏ¿© Á¤È®ÇÑ ¸Þ¼µå¸¦ È£ÃâÇϱ⠶§¹®¿¡ ¶È°°Àº ÄÚµå·Î ´Ù¾çÇÑ µ¿ÀÛÀ» ¼öÇàÇÑ´Ù.
±×·¸´Ù¸é µ¿Àû ¹ÙÀεùÀº ³»ºÎÀûÀ¸·Î ¾î¶»°Ô ±¸ÇöÇÏ´Â °ÍÀϱî? ÄÄÆÄÀÏ·¯´Â
½ÇÇà ÆÄÀÏÀ» ¸¸µé¾î ³»¸é ÀÓ¹«°¡ ³¡³ª¸ç ½ÇÇàÁß¿¡´Â ´õ ÀÌ»ó µ¿ÀÛÇÏÁö ¾Ê´Â´Ù. °á±¹ ÄÄÆÄÀÏ ´Ü°è¿¡¼ ¸ðµç
°ÍÀ» °áÁ¤ÇØ ³õÀ» ¼ö¹Û¿¡ ¾ø´Ù. ½ÇÇàÁß¿¡ ÀϾ ÀÏÀ» ÄÄÆÄÀÏ ´Ü°è¿¡¼ ¹Ì¸® ¿¹ÃøÇÏ¿© Äڵ带 ¸¸µé¾î³»´Â
°ÍÀº ¿øÄ¢ÀûÀ¸·Î ºÒ°¡´ÉÇÏ´Ù. ¹º°¡ Ư´ÜÀÇ ´ëÃ¥ÀÌ ÇÊ¿äÇÏ´Ù´Â ¾ê±â´Ù.
µ¿Àû ¹ÙÀεùÀ» ¾î¶»°Ô ±¸ÇöÇÒ °ÍÀΰ¡¿¡ ´ëÇؼ´Â ¾ð¾î ¸í¼¼¿¡ º°´Ù¸¥ ¾ð±ÞÀÌ ¾øÀ¸¸ç ÄÄÆÄÀÏ·¯ Á¦Àۻ簡 ¾Ë¾Æ¼ ÇÒ
ÀÏÀÌ´Ù. ÄÄÆÄÀÏÁß¿¡ ¸ðµç °ÍÀ» °áÁ¤Çϸ鼵µ ½ÇÇàÁß¿¡ ŸÀÔÀ» ÆÇ´ÜÇϵµ·Ï ±¸Á¶¸¦ ¸¸µé¾î¾ß ÇÏ´Â ¾î·Á¿î ¹®Á¦ÀÌ´Ù. µ¿Àû ¹ÙÀεù ±¸Çö ¹æ½ÄÀº ¿©·¯ °¡Áö°¡ Àִµ¥ ´ëºÎºÐÀÇ ¾ð¾î´Â vtableÀ̶ó´Â
¹æ¹ýÀ» »ç¿ëÇÑ´Ù.
vtableÀº Ŭ·¡½ºº°·Î ÀÚ½ÅÀÇ ¸Þ¼µå ¹øÁö¸¦ µµÇ¥·Î ÀÛ¼ºÇØ ³õÀº
·è¾÷ Å×À̺íÀÌ´Ù. ÀÚ½ÅÀÌ ¼ÒÀ¯ÇÑ ¸Þ¼µå´Â ¹°·ÐÀÌ°í »ó¼Ó¹ÞÀº ¸Þ¼µå, ÀçÁ¤ÀÇÇÑ
¸Þ¼µå¿¡ ´ëÇÑ ¹øÁöµµ ´Ù °¡Áö°í ÀÖ´Ù. ¸¸¾à »ó¼Ó¹ÞÀº ¸Þ¼µå¸¦ ÀçÁ¤ÀÇÇÏÁö ¾Ê¾Ò´Ù¸é ºÎ¸ðÀÇ ¸Þ¼µå¸¦ ´ë½Å
°¡¸®Å²´Ù. ÀÌ Å¸ÀÔÀÇ °´Ã¼°¡ È£ÃâÇÒ ¸Þ¼µå ¸ñ·ÏÀ» ¿Ïº®ÇÏ°Ô ±â¾ïÇØ µÎ´Â °ÍÀÌ´Ù.
°´Ã¼´Â ÀÚ½ÅÀÇ °íÀ¯ ¸â¹ö ¿Ü¿¡µµ ÀÚ½ÅÀÌ ¼Ò¼ÓµÈ Ŭ·¡½ºÀÇ vtable¿¡
´ëÇÑ ÂüÁ¶ÀÎ vptrÀ» Çϳª¾¿ °¡Áö°í ÀÖ´Ù. Áï, °´Ã¼¸¶´Ù ÀÚ½ÅÀÌ ¾î¶² Ŭ·¡½ºÀÎÁö Á¤Ã¼¸¦ ¹àÈ÷µµ·Ï µÇ¾î ÀÖ´Ù. ¸Þ¼µå¸¦
È£ÃâÇÏ¸é °´Ã¼ÀÇ vptr·ÎºÎÅÍ Å¬·¡½ºÀÇ vtableÀ» ã°í
¸Þ¼µåÀÇ ¼ø¼°ªÀ» ÂüÁ¶ÇÏ¿© vtable¿¡¼ ½ÇÁ¦ ¸Þ¼µåÀÇ ¹øÁö¸¦ ã¾Æ È£ÃâÇÑ´Ù. ÀÌ·¸°Ô Çϸé Ç×»ó Á¤È®ÇÑ ¸Þ¼µå°¡ ¼±ÅÃÇÑ´Ù.
À§ ±×¸²ÀÇ kim °´Ã¼¿¡ ´ëÇØ
intro¸¦ È£ÃâÇÏ¸é ´õ º¼ °Íµµ ¾øÀÌ HumanÀÇ
intro¸¦ È£ÃâÇÑ´Ù. lee °´Ã¼ÀÇ intro°¡
¾î¶² ¸Þ¼µå¸¦ È£ÃâÇÒ °ÍÀΰ¡´Â StudentÀÇ ·è¾÷ Å×ÀÌºí¿¡ ÀÇÇØ °áÁ¤µÇ¸ç Á¤È®ÇÑ ¸Þ¼µå´Â ÀçÁ¤ÀÇ ¿©ºÎ¿¡
µû¶ó ´Þ¶óÁø´Ù. »ó¼Ó¸¸ ¹Þ¾ÒÀ¸¸é Human.intro°¡ È£ÃâµÇ°í
ÀçÁ¤ÀÇÇßÀ¸¸é Student.intro°¡ È£ÃâµÈ´Ù. lee.study°¡
È£ÃâÇÒ ¸Þ¼µå´Â ÇöÀç·Î¼´Â Student.study¹Û¿¡ ¾ø´Ù.
Human ŸÀÔÀÇ choi´Â
Á¤Àû ŸÀÔÀº HumanÀÌÁö¸¸ ½ÇÁ¦ °´Ã¼´Â Student¿©¼ StudentÀÇ ·è¾÷ Å×À̺íÀ» °¡¸®Å²´Ù. ÀÌ »óÅ¿¡¼ choi.intro´Â HumanÀÇ
intro¸¦ ¼±ÅÃÇÏÁö ¾Ê°í Student°¡ ÀçÁ¤ÀÇÇÑ
intro¸¦ ¼±ÅÃÇÑ´Ù. Á¤Àû ŸÀÔ°ú µ¿Àû ŸÀÔÀÌ ´Ù¸¦ °æ¿ì¶óµµ vtableÀ» ÂüÁ¶Çϸé Ç×»ó µ¿Àû ŸÀÔÀ» µû¸£µµ·Ï µÇ¾î ÀÖ´Ù.
´ÙÇüÀû ±¸¹®¿¡ ´ëÇÑ ¹ø¿ªÀº ÄÄÆÄÀÏ ´Ü°è¿¡¼ ¿Ï·áµÇ¾î ½ÇÇàÁß¿¡ ŸÀÔÀ» ÆǺ°ÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù. ±×·¯³ª vtable°ú vptr·Î
¿Ïº®ÇÑ Áغñ¸¦ ÇØ µÎ°í ÂüÁ¶¿¡ ÀÇÇØ ¸Þ¼µå¸¦ ã´Â Äڵ带 ÀÛ¼ºÇØ µÎ¸é ¶È°°Àº È¿°ú¸¦ ³¾ ¼ö ÀÖ´Ù. Áï, µ¿Àû ¹ÙÀεùÀº ½ÇÇàÁß¿¡ ¼±ÅÃÀ» ÇÒ ¼ö ÀÖµµ·Ï ÄÄÆÄÀÏÁß¿¡ ¿Ïº®ÇÑ Áغñ¸¦ ÇØ µÎ´Â ¹æ½ÄÀ¸·Î ±¸ÇöµÈ´Ù. ±×·¯´Ù º¸´Ï µ¿Àû ¹ÙÀεùÀÌ Á¤Àû ¹ÙÀεùº¸´Ù ´À¸®°í ºñ´ëÇÒ ¼ö¹Û¿¡ ¾ø´Ù.