°¡»ó ÇÔ¼ö´Â ÀÚ½ÅÀ» È£ÃâÇÏ´Â °´Ã¼ÀÇ Å¸ÀÔ, Áï µ¿Àû ŸÀÔ¿¡ µû¶ó ½ÇÁ¦ È£ÃâµÉ ÇÔ¼ö°¡ °áÁ¤µÈ´Ù. ÀÌÇØÇϱ⠾î·Á¿î µ¿ÀÛÀº ¾Æ´ÏÁö¸¸ ÄÄÆÄÀÏ·¯°¡ °¡»ó ÇÔ¼ö È£Ãâ¹®À» ¾î¶»°Ô ¹ø¿ªÇϴ°¡¸¦ »ý°¢ÇØ º¸¸é ´Ù¼Ò ÀÌ»óÇÑ Á¡À» ¹ß°ßÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ÀÇ ÀϹÝÀûÀÎ ÇÔ¼ö È£Ãâ¹®À» º¸ÀÚ.
gotoxy(...);
printf(...);
ÄÄÆÄÀÏ·¯´Â gotoxy ÇÔ¼ö°¡ ¾î¶² ÁÖ¼Ò¿¡ ÀÖ´ÂÁö ¾Ë°í ÀÖÀ¸¸ç ±×·¡¼ gotoxy È£Ãâ¹®À» ÀÌ ÇÔ¼öÀÇ ÁÖ¼Ò·Î Á¡ÇÁÇÏ´Â ÄÚµå·Î ¹ø¿ªÇÒ °ÍÀÌ´Ù. ÄÄÆÄÀÏÇÏ´Â ½ÃÁ¡(Á¤È®ÇϰԴ ¸µÅ© ½ÃÁ¡)¿¡ ÀÌ¹Ì ¾îµð·Î °¥ °ÍÀΰ¡°¡ °áÁ¤µÇ´Â ÀÌ·± °áÇÕ ¹æ¹ýÀ» Á¤Àû °áÇÕ(Static Binding) ¶Ç´Â À̸¥ °áÇÕ(Early Binding)À̶ó°í ÇÑ´Ù. °áÇÕ(Binding)À̶õ ÇÔ¼ö È£Ãâ¹®¿¡ ´ëÇØ ½ÇÁ¦ È£ÃâµÉ ÇÔ¼öÀÇ ¹øÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀ» ¸»Çϴµ¥ Áö±Ý±îÁö ÀÛ¼ºÇÏ°í »ç¿ëÇß´ø ÀϹÝÀûÀÎ ÇÔ¼öµéÀº ¸ðµÎ Á¤Àû °áÇÕ¿¡ ÀÇÇØ ¹ø¿ªµÈ´Ù.

±×·±µ¥ °¡»ó ÇÔ¼ö´Â Æ÷ÀÎÅͰ¡ °¡¸®Å°´Â °´Ã¼ÀÇ Å¸ÀÔ¿¡ µû¶ó È£ÃâµÉ ½ÇÁ¦ ÇÔ¼ö°¡ ´Þ¶óÁö¹Ç·Î ÄÄÆÄÀϽÿ¡ È£ÃâÇÒ ÁÖ¼Ò°¡ °áÁ¤µÇ´Â Á¤Àû °áÇÕÀ¸·Î´Â Á¤È®ÇÏ°Ô È£ÃâÇÒ ¼ö ¾ø´Ù. ¿Ö³ÄÇÏ¸é Æ÷ÀÎÅͰ¡ ½ÇÇàÁß¿¡ ¾î¶² ŸÀÔÀÇ °´Ã¼¸¦ °¡¸®Å³Áö ÄÄÆÄÀÏ Áß¿¡´Â ¾Ë ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. ´ëÀÔÀº ½ÇÇàÁß¿¡ ȸ¼ö¿¡ »ó°ü¾øÀÌ ¾ó¸¶µçÁö ÇÒ ¼ö ÀÖ´Â ¿¬»êÀÌ°í Æ÷ÀÎÅʹ ŸÀÔ¸¸ ÀÏÄ¡ÇÏ¸é ¾ó¸¶µçÁö ´Ù¸¥ ´ë»óÀ» °¡¸®Å³ ¼ö ÀÖ´Ù. ÄÄÆÄÀÏ·¯´Â ¾Õ ¿¹Á¦ÀÇ Message ÇÔ¼öÀÇ º»Ã¼¸¦ ƯÁ¤ ¹øÁö·ÎÀÇ Á¡ÇÁ¹®À¸·Î ¹ø¿ªÇÒ ¼ö ¾øÀ¸¸ç Á¶°Ç¿¡ µû¶ó È£ÃâÇÒ ÇÔ¼ö¸¦ °áÁ¤ÇÏ´Â ¹®ÀåÀ¸·Î ¹ø¿ªÇØ¾ß ÇÑ´Ù.
void Message(Base *pB)
{
if pB°¡ Base °´Ã¼¸¦ °¡¸®Å°¸é Base::OutMessage È£Ãâ
if pB°¡ Derived °´Ã¼¸¦ °¡¸®Å°¸é Derived::OutMessage È£Ãâ
}
½ÇÇàÁß¿¡ È£ÃâÇÒ ÇÔ¼ö¸¦ °áÁ¤ÇÏ´Â ÀÌ·± °áÇÕ ¹æ¹ýÀ» µ¿Àû °áÇÕ(Dynamic Binding) ¶Ç´Â ´ÊÀº °áÇÕ(Late Binding)À̶ó°í ÇÑ´Ù. pB->OutMessage È£Ãâ¹®À» ¹Ì¸® °íÁ¤µÈ ¹øÁö·ÎÀÇ Á¡ÇÁ¹®À¸·Î ¹ø¿ªÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó pB°¡ °¡¸®Å°´Â °´Ã¼ÀÇ Å¸ÀÔ¿¡ µû¶ó ÀûÀýÇÑ ÇÔ¼ö¸¦ ¼±ÅÃÇØ¼ Á¡ÇÁÇÏ´Â ÄÚµå·Î ¹ø¿ªÇØ¾ß ÇÏ´Â °ÍÀÌ´Ù. ÀÌ·¸°Ô ÇØ¾ß Àü´ÞµÈ °´Ã¼¿¡ µû¶ó °¢±â ´Ù¸¥ µ¿ÀÛÀ» ÇÒ ¼ö ÀÖ´Â ´ÙÇü¼ºÀ» ±¸ÇöÇÒ ¼ö ÀÖ´Ù.

µ¿Àû °áÇÕÀº ¸â¹ö ÇÔ¼ö¸¦ Æ÷ÀÎÅÍ(¶Ç´Â ·¹ÆÛ·±½º)·Î È£ÃâÇÒ ¶§¸¸ µ¿ÀÛÇÑ´Ù. °´Ã¼·ÎºÎÅÍ ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§´Â ¼³»ç ±× ÇÔ¼ö°¡ °¡»ó ÇÔ¼ö¶ó ÇÒ Áö¶óµµ ÄÄÆÄÀÏ ½Ã¿¡ È£ÃâÇÒ ÇÔ¼ö¸¦ Á¤È®ÇÏ°Ô °áÁ¤ÇÒ ¼ö ÀÖ´Ù. ¿Ö³ÄÇÏ¸é °´Ã¼´Â ÀÚ½ÅÀÌ ¼Ò¼ÓµÈ Ŭ·¡½º ŸÀÔÀÏ »ÓÀÌÁö ´Ù¸¥ ŸÀÔÀÌ µÉ ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. Æ÷ÀÎÅÍ´Â ºÎ¸ð ŸÀÔÀÇ Æ÷ÀÎÅͰ¡ ÀÚ½ÄÀ» °¡¸®Å³ ¼ö Àֱ⠶§¹®¿¡ Á¤È®ÇÑ ÇÔ¼ö¸¦ È£ÃâÇϱâ À§ÇØ µ¿Àû °áÇÕÀ» ÇØ¾ß ÇÏÁö¸¸ °´Ã¼·Î Á÷Á¢ È£ÃâÇÒ ¶§´Â È£Ãâ °´Ã¼ÀÇ Å¸ÀÔÀ» ºÐ¸íÈ÷ ¾Ë ¼ö ÀÖÀ¸¹Ç·Î ±×·² Çʿ䰡 ¾ø´Ù. ´ÙÀ½ ÄÚµå´Â ¾î¶² ÇÔ¼ö¸¦ È£ÃâÇÒÁö ºÐ¸íÈ÷ ¾Ë ¼ö ÀÖ´Ù.
B.OutMessage();
D.OutMessage();
¸¸¾à ´©±º°¡°¡ ¿©·¯ºÐ¿¡°Ô °¡»ó ÇÔ¼ö¶õ ¹«¾ùÀΰ¡¶ó´Â Áú¹®À» ÇÑ´Ù¸é ¾î¶»°Ô ´ë´äÇÒ ¼ö Àְڴ°¡? ÀÌ Áú¹®¿¡ ´ëÇÑ °¡Àå ª°íµµ Á¤È®ÇÑ ´ë´äÀº "µ¿Àû °áÇÕÀ» ÇÏ´Â ÇÔ¼ö"ÀÏ °ÍÀÌ´Ù. »ç½Ç °¡»ó ÇÔ¼ö¸¦ ĪÇÏ´Â vitrualÀ̶ó´Â Ű¿öµå´Â »ó´çÈ÷ À߸ø ¼±ÅõǾúÀ¸¸ç ÀÌ ¸»À» Çѱ¹¾î·Î ¹ø¿ªÇÑ °á°úÀÎ "°¡»ó"À̶ó´Â ¸»µµ ¸¶Âù°¡ÁöÀÌ´Ù. °¡»óÀ̶ó´Â ¸»Àº "~ÀÌ ¾Æ´Ï´Ù"¶ó´Â ¶æÀ̹ǷΠÀÌ ¸»À» óÀ½ µé¾úÀ» ¶§ ´©±¸³ª ÇÔ¼ö°¡ ¾Æ´Ñ °Íó·³ ¿ÀÇØÇÒ ¼ÒÁö°¡ ÀÖÀ¸¸ç µ¶ÀÚÀÇ Á÷°ü·ÂÀ» ÀüÇô ¾µ¸ð¾ø°Ô ¸¸µé¾î ¹ö¸°´Ù. virtualÀ̶ó´Â ¿ë¾î¿¡ ¶æÀÌ ºÐ¸íÈ÷ Ç¥ÇöµÇÁö ¾ÊÀ¸¹Ç·Î½á ¾È±×·¡µµ ¾î·Á¿î °³³äÀ» ´õ ¾î·Æ°Ô ¸¸µç´Ù. "°¡»ó"À̶ó´Â ´Ü¾î¿¡¼ Àǹ̸¦ ãÀ¸·Á°í Çϸé Çò°¥¸®±â¸¸ ÇÒ »ÓÀÌ´Ù.
Â÷¶ó¸® ¾ÖÃʺÎÅÍ "µ¿Àû °áÇÕ ÇÔ¼ö"¶ó°í ĪÇϰí runbindingÀ̳ª dynamic ¶Ç´Â overridable°°Àº Ű¿öµå¸¦ »ç¿ëÇß´õ¶ó¸é ÈξÀ ÀÌÇØÇϱ⠽¬¿üÀ» °ÍÀÌ´Ù. ÀÌ ÇÔ¼ö¿¡ virtualÀ̶ó´Â ¿ë¾î¸¦ ¾´ ÀÌÀ¯´Â ÀüÅëÀûÀÎ ÇÔ¼öó·³ Á¤Àû °áÇÕÀ» ÇÏÁö ¾ÊÀ¸¸ç ÆÄ»ý Ŭ·¡½º°¡ ÀçÁ¤ÀÇÇØµµ ¾ÈÀüÇÏ´Ù´Â ¶æÀÌ´Ù. virtualÀ̶ó´Â ¿ë¾îÀÇ ¶Ç ´Ù¸¥ À߸øµÈ »ç¿ë¿¹´Â °¡»ó ±â¹Ý Ŭ·¡½º¸¦ ÁöÁ¤ÇÒ ¶§ »ç¿ëµÇ´Â virtual Ű¿öµåÀÌ´Ù. À̶§ »ç¿ëµÈ virtual°ú °¡»ó ÇÔ¼ö·Î ÁöÁ¤ÇÒ ¶§ »ç¿ëµÇ´Â virtualÀº ¾Æ¹«·± ¿¬°üÀÌ ¾ø°í ºñ½Áµµ ¾Æ´ÏÇÏ´Ù. ±×·¡¼ ´õ È¥¶õ½º·´´Ù. ÀÌ ¹®Á¦´Â ¿©·¯ ¹ø ÁöÀûµÇ¾úÁö¸¸ Ç¥ÁØ À§¿øÈ¸´Â »õ·Î¿î Ű¿öµå µµÀÔ¿¡ ´ëÇØ »ç¿ëÀÚÀÇ ¸íĪ ¼±ÅñÇÀ» Á¦ÇÑÇÒ ¼öµµ ÀÖ´Ù´Â ÀÌÀ¯·Î ºÎÁ¤ÀûÀÎ ÀÔÀåÀÌ´Ù. C¾ð¾î¿¡µµ ÀÌ·± ¿¹°¡ Àִµ¥ Á¤Àûº¯¼ö¿Í ¿ÜºÎ Á¤Àûº¯¼ö¸¦ ¼±¾ðÇÒ ¶§ »ç¿ëÇϴ Ű¿öµå staticµµ »ç½ÇÀº Ű¿öµå¸¦ Áߺ¹Çؼ »ç¿ëÇÏ´Â °ÍÀÌ´Ù.