º»¹®/³»¿ë
friend
µ¥ÀÌÅÍ Ãß»óÈ¿¡´Â ¸ÂÁö ¾ÊÁö¸¸ private³ª protected·Î ¼±¾ðµÈ ºÎºÐÀ» °Çµå·Á¾ß ÇÒ ¶§°¡ ÀÖ´Ù. ¹°·Ð À̰ÍÀ» ¸â¸Ó ÇÔ¼ö¸¦ ¸¸µé¾î Á¢±ÙÇØ¾ß ÇÏ´Â °ÍÀÌ µ¥ÀÌÅÍ Ãß»óÈ¿¡ °¡Àå ÇÕ´çÇÏÁö¸¸ ±×·¸°Ô ÇÏ´Ùº¸¸é ¹èº¸´Ù ¹è²ÅÀÌ ´õ Ä¿Á®¼ ÇÔ¼öÀÇ ±â´ÉÀº º° °Í ¾Æ´Ñµ¥ ºÎ°¡ÀûÀ¸·Î ºÙ´Â ÇÔ¼ö°¡ ´õ ¸¹¾ÆÁö´Â ±âÇö»óÀ» º¸ÀÌ°Ô µÉ ¶§°¡ ÀÖ´Ù.
ÄÚµùÀÇ ¾î·Á¿òÀ» Â÷ÁöÇÏ´õ¶óµµ ÇÔ¼ö È£Ãâ¿¡ ÀÇÇÑ ¿À¹öÇìµå¿¡ ÀÇÇØ ÀüüÀûÀÎ ÇÁ·Î±×·¥ ½ÇÇà ¼Óµµ°¡ ´«¿¡ ¶ç°Ô ´À·ÁÁö´Â °æ¿ì°¡ ÀÖ´Ù.¹°·Ð ÀÌ·² ¶§ publicÀ¸·Î ¼±¾ðÇÏ¸é µÇÁö¸¸,private³ª protected·Î ¼±¾ðµÈ ºÎºÐÀ» °Çµå·Á¾ß ÇÏ´Â ÇÔ¼öÀÇ °³¼ö°¡ ±×¸® ¸¹Áö ¾Ê´Ù¸é ÇϳªÀÇ ÇØ°áÃ¥ÀÌ ÀÖ´Ù. Ŭ·¡½ºÀÇ privateÀ̳ª protected ºÎºÐ¿¡ Á¢±ÙÇÒ ÇÔ¼ö¸íÀ» Ŭ·¡½º³»¿¡ ½áÁÖ°í ÇÔ¼ö¸í ¾Õ¿¡ friend Ű¿öµå¸¦ ´Þ¾ÆÁÖ¸é µÈ´Ù.
class Exam{
private:
int value;
public:
Exam(int x){value = x;}
friend void PrintValue(Exam);
};
void PrintValue(Exam a){
cout << a.value << endl;
}
15. ¿¹¿Ü »óȲ
1.¿¹¿Ü »óȲó¸®ÀÇ ¹®Á¦Á¡
1) °¢ °æ¿ì¸¦ ¸ðµÎ µûÁ®¼ ¿À·ù ó¸® ÄÚµùÇØ¾ß Çϱ⠶§¹®¿¡ ¹èº¸´Ù ¹è²ÅÀÌ ´õ Å« °ÝÀ¸·Î óÀ½ Äڵ庸´Ù ¿À·ù ó¸® Äڵ尡 ´õ Ä¿Áö´Â ºÒ»ó»ç°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù.
2) ¸¹Àº ¿À·ù ó¸® Äڵ尡 µé¾î°¬À»¶§ ÇÁ·Î±×·¥ °¡µ¶¼ºÀÌ ¶³¾îÁø´Ù.
3) ÇÁ·Î±×·¥¿¡¼ º¹±¸ÇÏÁö ¸øÇÏ´Â ¿À·ù°¡ ¹ß»ýÇßÀ»¶§ ½Ã½ºÅÛÀÌ ´Ù¿îµÇ°Å³ª Á¾·áÇÑ´Ù.
4) ÇÁ·Î±×·¥ ¾÷±×·¹À̵带 ÇÒ¶§ ¿¹»óÄ¡ ¸øÇÑ ¿À·ù°¡ ¹ß»ýÇÑ´Ù.
2. ¿¹¿Ü »óȲó¸®
¿¹¡¦(»ý·«)
´øÁø´Ù.(throw) ±×·¯¸é ¿¹¿Ü¸¦ ó¸®ÇÒ ¼ö ÀÖ´Â ÀûÇÕÇÑ Çڵ鷯°¡ ÀÌ ¿¹¿Ü¸¦ ºÙÀâ´Â´Ù.(catch)