[C++]°ÁÂ(11)<--linkage ÁöÁ¤
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
struct Position
{
int px;
int py;
char ch;
void outpos() // ÇÔ¼ö°¡ ±¸Á¶Ã¼ ³»ºÎ¿¡ Æ÷ÇԵǾú´Ù.
{
gotoxy( px, py);
putch( ch);
}
};
void main()
{
clrscr();
Position HERE; // ±¸Á¶Ã¼ »ý¼º
HERE.px = 10; // ¸â¹öÀÇ ÃʱâÈ
HERE.py = 10;
HERE.ch = 'S';
HERE.outpos(); // ¸â¹ö ÇÔ¼ö È£Ãâ
}
½ÇÇà °á°ú´Â 18-1°ú µ¿ÀÏÇÏ´Ù. outpos ÇÔ¼ö°¡ ±¸Á¶Ã¼ ¾È¿¡ Á¤ÀǵǾî ÀÖ´Ù. out
pos ÇÔ¼ö°¡ Á¸ÀçÇÏ´Â ÀÌÀ¯°¡ ¾îÂ÷ÇÇ Position ±¸Á¶Ã¼ÀÇ µ¥ÀÌÅ͸¦ ó¸®Çϱâ À§
Çؼ¶ó¸é ±»ÀÌ ±¸Á¶Ã¼ ¹Ù±ù¿¡ µû·Î Á¤ÀÇÇØ µÑ ÇÊ¿ä¾øÀÌ ±¸Á¶Ã¼¿¡ °°ÀÌ Æ÷ÇÔ½Ã
Å°ÀÚ´Â °ÍÀÌ´Ù. Á¤¼öÇüÀÇ º¯¼ö px, py¿Í ¹®ÀÚÇü º¯¼ö ch¸¦ Position ±¸Á¶Ã¼ÀÇ
¸â¹ö¶ó°í ºÎ¸£¸ç ±¸Á¶Ã¼¸¦ ÀÌ·ç´Â °³º° ¿ä¼ÒµéÀ̶ó´Â ¶æÀÌ´Ù. outpos°°ÀÌ ÇÔ¼ö
°¡ ±¸Á¶Ã¼ ³»¿¡ Æ÷ÇԵǾî ÀÖÀ» ¶§ outpos ÇÔ¼öµµ ¸¶Âù°¡Áö·Î ±¸Á¶Ã¼ÀÇ ¸â¹ö Áß
ÀÇ Çϳª°¡ µÇ¸ç À̶§ outpos¸¦ ±¸Á¶Ã¼ PositionÀÇ ¸â¹ö ÇÔ¼ö(member function)
¶ó°í ÇÑ´Ù.
C¿¡¼´Â ±¸Á¶Ã¼, °ø¿ëü¸¦ ±¸¼ºÇÏ´Â °³º° ¿ä¼Ò¸¦ ±×³É ¸â¹ö¶ó°í ºÒ·¶Áö¸¸ C++
¿¡¼´Â ±¸Á¶Ã¼°¡ µ¥ÀÌÅÍ(º¯¼ö)µé¸¸ Æ÷ÇÔÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ÇÔ¼ö±îÁö Æ÷ÇÔÇÒ ¼ö
ÀÖ°Ô µÇ¾úÀ¸¹Ç·Î ¸â¹öµµ µÎ °¡Áö Á¾·ù°¡ ÀÖ°í °¢°¢ ´Ù¸¥ À̸§À¸·Î ºÎ¸¥´Ù. px,
py, ch µî°ú °°ÀÌ ±¸Á¶Ã¼¿¡ ¼ÓÇÑ º¯¼öµéÀ» µ¥ÀÌÅÍ ¸â¹ö¶ó°í ÇÏ°í outpos°°ÀÌ
±¸Á¶Ã¼¿¡ ¼ÓÇÑ ÇÔ¼öµéÀ» ¸â¹ö ÇÔ¼ö ¶ó°í ÇÑ´Ù.
*)Âü°í
ÇÔ¼ö member³ª, member data¶ó´Â Ç¥ÇöÀº ¾²Áö ¾Ê´Â´Ù. °ü½ÀÀûÀ¸·Î ±¸Á¶Ã¼¿¡
¼ÓÇÑ ÇÔ¼ö´Â ¸â¹ö ÇÔ¼ö ¶ó°í ºÎ¸£¸ç, ±¸Á¶Ã¼¿¡ ¼ÓÇÑ º¯¼ö´Â data member¶ó°í
ºÎ¸¥´Ù. ¸â¹ö ÇÔ¼ö¸¦ PASCALÀ̳ª smalltalk µîÀÇ ¾ð¾î¿¡¼´Â method¶ó°í Ç¥Çö
ÇÑ´Ù.
µÎ ¸â¹ö´Â ¼·Î ¼º°ÝÀÌ ÆÇÀÌÇÏ°Ô ´Ù¸£´Ù. µ¥ÀÌÅÍ ¸â¹ö´Â ÀÛ¾÷ÀÇ Àç·á°¡ µÇ´Â
°ÍÀÌ°í ¸â¹ö ÇÔ¼ö´Â ÀÛ¾÷ÀÇ ¼ö´ÜÀÌ µÈ´Ù.
outpos ÇÔ¼ö°¡ ±¸Á¶Ã¼ ³»ºÎ¿¡ Æ÷ÇÔµÊÀ¸·Î½á ¾î¶°ÇÑ º¯È°¡ ÀϾ´ÂÁö µÎ ¿¹
Á¦¸¦ ºñ±³ÇØ º¸ÀÚ.
1. outpos ÇÔ¼öÀÇ Á¤ÀǺο¡¼ º¸´Ù½ÃÇÇ ÇÔ¼öÀÇ Àμö°¡ ºÒÇÊ¿äÇØÁ³´Ù. outpos°¡
ÀÏ¹Ý ÇÔ¼öÀÏ ¶§´Â ÀÛ¾÷ ´ë»óÀÌ µÉ ±¸Á¶Ã¼°¡ ÇÊ¿äÇßÁö¸¸ ±¸Á¶Ã¼ ³»ºÎ¿¡ Æ÷ÇÔ
µÇ¸é ÀÛ¾÷ ´ë»óÀÌ ´ç¿¬È÷ ÀÚ½ÅÀÌ ¼ÓÇÑ ±¸Á¶Ã¼À̹ǷΠ±¸Á¶Ã¼¸¦ Àμö·Î ³Ñ°ÜÁÙ
ÇÊ¿ä°¡ ¾ø¾îÁ³´Ù. ±×·¡¼ Position ±¸Á¶Ã¼ÀÇ ¸â¹ö ÇÔ¼öÀÎ outpos´Â Àμö¸¦
ÃëÇÏÁö ¾Ê´Â´Ù.
2. outposÀÇ º»Ã¼¿¡¼ px, py¸¦ Ç¥ÇöÇÒ ¶§ ¼Ò¼Ó ±¸Á¶Ã¼¸¦ ¹àÈú ÇÊ¿ä°¡ ¾ø´Ù.
±¸Á¶Ã¼ ¹Ù±ù¿¡ ÀÖÀ» ¶§ ±¸Á¶Ã¼ ¸â¹ö¸¦ ¾×¼¼½ºÇϱâ À§Çؼ´Â ±¸Á¶Ã¼ À̸§°ú
¸â¹ö À̸§ »çÀ̸¦ ¸â¹ö ¿¬»êÀÚ(.)¸¦ »ç¿ëÇØ HERE.px, HERE.py µîÀ¸·Î Ç¥ÇöÀ»
Çß¾ú´Ù. ÇÏÁö¸¸ ÀÌÁ¦´Â outpos ÇÔ¼ö°¡ ±¸Á¶Ã¼ ³»ºÎ¿¡ ÀÖ°í ±¸Á¶Ã¼ ³»ºÎÀÇ µ¥
ÀÌÅÍ ¸â¹ö¸¦ »ç¿ëÇϹǷΠµ¥ÀÌÅÍ ¸â¹öÀÇ ¼Ò¼Ó ±¸Á¶Ã¼¸¦ ¸í½ÃÇÒ ÇÊ¿ä°¡ ¾ø´Ù.
3. ÇÔ¼öÀÇ È£Ã⠺κÐÀÌ ´Þ¶óÁ³´Ù. main ÇÔ¼öÀÇ Á¦ÀÏ ³¡¿¡¼ outpos ÇÔ¼ö¸¦ È£
ÃâÇϴµ¥ Àμö°¡ ¾ø¾îÁø °Í ¿Ü¿¡µµ outposÀÇ ¼Ò¼Ó ±¸Á¶Ã¼¸¦ ¹àÇô ÁÖ¾ú´Ù´Â
Á¡ÀÌ ´Þ¶óÁ³´Ù. outpos´Â ´õÀÌ»ó µ¶¸³ÀûÀ¸·Î Á¸ÀçÇÏ´Â ÇÔ¼ö°¡ ¾Æ´Ï¶ó ±¸Á¶Ã¼
¿¡ ¼Ò¼ÓÇÏ´Â ¸â¹ö ÇÔ¼öÀÌ´Ù. ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¹æ¹ýÀº ±¸Á¶Ã¼ÀÇ µ¥ÀÌÅÍ
¸â¹ö¸¦ ÂüÁ¶ÇÏ´Â ¹æ¹ý°ú µ¿ÀÏÇÏ´Ù. ÇÔ¼ö À̸§ ¾Õ¿¡ ¼Ò¼Ó ±¸Á¶Ã¼¸¦ ½áÁÖ°í °¡
¿îµ¥ ¸â¹ö ¿¬»êÀÚ(.)¸¦ ³Ö¾îÁÖ¸é µÈ´Ù. HERE.outpos();´Â HERE ±¸Á¶Ã¼¿¡ ¼Ó
ÇÑ ¸â¹ö ÇÔ¼ö outpos()¸¦ È£ÃâÇ϶ó´Â ¶æÀÌ´Ù.
±¸Á¶Ã¼°¡ ÇÔ¼ö ¾È¿¡ ÀÖÀ¸¹Ç·Î À̽ļº¿¡ ÀÖ¾î¼ ÈξÀ À¯¸®ÇØÁø´Ù. Position ±¸
Á¶Ã¼¸¦ ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼µµ »ç¿ëÇÏ°íÀÚ ÇÑ´Ù¸é Position ±¸Á¶Ã¼¸¦ ±×³É °¡Áö
°í °¡¸é µÈ´Ù. ÀÚ½ÅÀ» Ç¥ÇöÇÏ´Â µ¥ÀÌÅÍ´Â ¹°·Ð µ¥ÀÌÅ͸¦ Á¶ÀÛÇÏ´Â ÇÔ¼ö±îÁö ±¸
Á¶Ã¼ ¾È¿¡ Æ÷ÇԵǾî Àֱ⠶§¹®ÀÌ´Ù. ±ÍÂú°Ô ±¸Á¶Ã¼¿Í °ü°èµÈ ÇÔ¼öµéµµ °°ÀÌ °¡
Áö°í °¥ ÇÊ¿ä°¡ ¾ø´Ù.
±×¸®°í ±¸Á¶Ã¼ÀÇ ÁöÀ§ ÀÚü°¡ Çâ»óµÇ¾ú´Ù. ±¸Á¶Ã¼¶õ °ü°èÀÖ´Â µ¥ÀÌÅͳ¢¸® ÇÑ
°÷¿¡ ¸ð¾Æ µÐ´Ù´Â Á¡¿¡ ÀÖ¾î¼ »ó´çÈ÷ °·ÂÇÏ°í ¿ëµµ°¡ ¸¹Àº ÀڷᱸÁ¶Àε¥ ÀÌ
Á¦ °ü°èÀÖ´Â µ¥ÀÌÅͻӸ¸ ¾Æ´Ï¶ó µ¥ÀÌÅ͸¦ Á¶ÀÛÇÏ´Â ÇÔ¼öµé±îÁöµµ Æ÷ÇÔÇÏ°Ô µÊ
À¸·Î½á ±¸Á¶Ã¼¸¸ °¡Áö°íµµ ÇÒ ¼ö ÀÖ´Â ÀÏÀÌ ´õ ´Ù¾çÇØÁ³À» »Ó ¾Æ´Ï¶ó ±¸Á¶Ã¼°¡
ÇÁ·Î±×·¥ÀÇ ºÎÇ°À¸·Î¼ µ¶¸³ÀûÀÎ ÀÚ°ÝÀ» ¾òÀ» ¼ö ÀÖ°Ô µÇ¾ú´Ù.
±¸Á¶Ã¼°¡ ÇÔ¼ö¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù´Â ¸é¿¡¼ ºÐ¸íÈ÷ C¿¡ ºñÇØ C++Àº ±â´É»ó ¸¹
Àº ºÎºÐ¿¡¼ È®ÀåÀÌ ÀÌ·ç¾îÁ³´Ù. ±¸Á¶Ã¼°¡ ÇÔ¼ö¸¦ ³»ºÎ¿¡ Æ÷ÇÔÇÏ´Â ¹æ¹ýÀº µÎ
°¡Áö°¡ ÀÖ´Ù. ù¹ø° ¹æ¹ýÀÌ ¾Õ¿¡¼ º¸ÀÎ ¿¹Á¦ 18-2¿Í °°ÀÌ ÇÔ¼öÀÇ Á¤ÀÇ ºÎºÐ
Àüü¸¦ ÇÔ¼ö ³»ºÎ¿¡ Æ÷ÇÔ½ÃÅ°´Â ¹æ¹ýÀÌ´Ù. µÎ ¹ø° ¹æ¹ýÀº ±¸Á¶Ã¼ ³»ºÎ¿¡´Â ÇÔ
¼öÀÇ ¿øÇü¸¸ ¹àÇôµÎ°í ÇÔ¼öÀÇ Á¤ÀÇ´Â ±¸Á¶Ã¼ ¹Û¿¡¼ ÇÏ´Â ¹æ¹ýÀÌ¸ç ¿¹Á¦ 18-3
¿¡¼ ÀÌ·¯ÇÑ ¹æ¹ýÀ¸·Î ¸â¹ö ÇÔ¼ö¸¦ Á¤ÀÇÇÏ¿´´Ù.
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
struct Position
{
int px;
int py;
char ch;
void outpos(); // ±¸Á¶Ã¼ ¾È¿¡¼´Â ¿øÇü¸¸ Á¤ÀÇÇÏ¿´´Ù.
};
void Position::outpos() // ±¸Á¶Ã¼ ¹Û¿¡¼ ÇÔ¼öÀÇ º»Ã¼¸¦ Á¤ÀÇÇÑ´Ù.
{ // scope ¿¬»êÀÚ¸¦ »ç¿ëÇØ ¼Ò¼ÓÀ» ¹àÈû
gotoxy( px, py);
putch( ch);
}
void main()
{
clrscr();
Position HERE;
HERE.px = 10;
HERE.py = 10;
HERE.ch = 'S';
HERE.outpos();
}
º¸´Ù½ÃÇÇ ±¸Á¶Ã¼ ³»ºÎ¿¡¼´Â ÇÔ¼öÀÇ ¿øÇü¸¸ ¹àÇô ÀÌ ÇÔ¼ö°¡ ±¸Á¶Ã¼¿¡ ¼ÓÇÑ´Ù´Â
°Í¸¸À» ¼±¾ðÇÏ°í Á¤ÀÇ´Â ±¸Á¶Ã¼ Á¤ÀÇ°¡ ³¡³ ÈÄ¿¡ º°µµ·Î ÇÑ´Ù. ¿øÇüÀº ±¸Á¶Ã¼
¾È¿¡ µÎ°í ÇÔ¼öÀÇ Á¤ÀÇ´Â ±¸Á¶Ã¼ ¹Û¿¡¼ ÇÏ°íÀÚ ÇÒ ¶§ ÇÔ¼ö Á¤ÀÇ ºÎºÐ¿¡¼´Â
¹Ýµå½Ã ±× ÇÔ¼ö°¡ ¾î´À ±¸Á¶Ã¼ÀÇ ¸â¹ö ÇÔ¼öÀΰ¡¸¦ ¹àÇô¾ß ÇÑ´Ù. À̶§ »ç¿ëÇÏ´Â
¿¬»êÀÚ°¡ scope ¿¬»êÀÚ(scope resolution operator)ÀÎ ::ÀÌ´Ù. ÇÔ¼ö Á¤ÀǺÎÀÇ
ÇÔ¼ö À̸§ ¾Õ¿¡ ÇÔ¼ö°¡ ¼ÓÇÑ ±¸Á¶Ã¼¸¦ ½áÁÖ°í ±× »çÀÌ¿¡ ¹üÀ§ ¿¬»êÀÚ¸¦ »ðÀÔÇØ
ÁØ´Ù.
return-°ª ¼Ò¼Ó-±¸Á¶Ã¼ÀÇ-À̸§::ÇÔ¼ö-À̸§(Àμö ¸®½ºÆ®)
{
ÇÔ¼öÀÇ º»Ã¼
}
Position::outpos()´Â Position ±¸Á¶Ã¼¿¡ ¼ÓÇØ ÀÖ´Â ¸â¹ö ÇÔ¼ö outpos¶ó´Â ÀÇ
¹ÌÀÌ´Ù. ¸â¹ö ÇÔ¼ö¸¦ ±¸Á¶Ã¼ÀÇ ³»ºÎ¿¡ Á¤ÀÇÇÏ´Â ¹æ¹ý°ú ±¸Á¶Ã¼ÀÇ ¿ÜºÎ¿¡ Á¤ÀÇ
ÇÏ´Â ¹æ¹ýÀº ½ÇÇà °á°ú´Â µ¿ÀÏÇÏÁö¸¸ ´ÙÀ½°ú °°Àº ³»ºÎÀûÀÎ Â÷ÀÌ°¡ ÀÖ´Ù.
* ³»ºÎ Á¤ÀÇ : ±¸Á¶Ã¼ ³»ºÎ¿¡¼ Á¤ÀÇµÈ ¸â¹ö ÇÔ¼ö´Â inline ¼Ó¼ºÀ» °®°Ô µÈ´Ù.
Áï, È£Ãâ½Ã Á¦¾î±ÇÀÇ À̵¿ÀÌ ÀϾÁö ¾Ê°í ÇÔ¼ö È£Ã⠺κРÀÚü°¡ ÇÔ¼öÁ¤ÀÇ
ºÎºÐÀ¸·Î ´ëüµÈ´Ù.
* ¿ÜºÎ Á¤ÀÇ : ±¸Á¶Ã¼¿¡ ¼Ò¼ÓÀÌ µÇ±â´Â ¸¶Âù°¡ÁöÀÌÁö¸¸ ÇÔ¼ö°¡ È£ÃâµÉ °æ¿ì ½Ç
Á¦·Î ÇÔ¼öÀÇ È£ÃâÀÌ ¹ß»ýÇÑ´Ù. inline ¼Ó¼ºÀ» °®Áö ¾Ê´Â´Ù.
¾î¶² ÇÔ¼ö¸¦ ±¸Á¶Ã¼ÀÇ ³»ºÎ¿¡ Á¤ÀÇÇÏ°í ¾î¶² ÇÔ¼ö¸¦ ¿ÜºÎ¿¡ Á¤ÀÇÇÒ °ÍÀΰ¡´Â
±¸Á¶Ã¼¸¦ ¸¸µå´Â »ç¶÷ÀÇ ¸¶À½ÀÌÁö¸¸ ´ëü·Î Å©±â°¡ ÀÛÀº ÇÔ¼ö´Â ³»ºÎ¿¡¼ Á÷Á¢
Á¤ÀÇÇÏ´Â °ÍÀÌ ÁÁ°í Å©±â°¡ Å« ÇÔ¼ö´Â ¿ÜºÎ¿¡ º°µµ·Î Á¤ÀÇÇÏ´Â ÆíÀÌ À¯¸®ÇÏ´Ù.
inline ÇÔ¼ö°¡ ¼Óµµ¿¡ À¯¸®ÇÏ°í size¿¡ ºÒ¸®ÇÏ´Ù´Â °Í¸¸ ÀÌÇØÇÑ´Ù¸é ¾î¶»°Ô ¼±
ÅÃÇØ¾ß ÇÒÁö ´ëÃæ ÆÇ´ÜÀÌ ¼³ °ÍÀÌ´Ù.
±¸Á¶Ã¼ÀÇ ¿ÜºÎ¿¡ ÀÖ´Â ÇÔ¼öÀÌ´õ¶óµµ inline keyword¿¡ ÀÇÇØ Æ¯º°È÷ ÁöÁ¤µÈ ÇÔ
¼ö´Â °Á¦·Î inlineÀÇ ¼Ó¼ºÀ» ¶ì°Ô µÈ´Ù. ´ÙÀ½°ú °°ÀÌ ¼±¾ðµÈ outpos ÇÔ¼ö´Â i
nline ¼Ó¼ºÀ» °¡Áø´Ù.
struct Position
{
int px;
int py;
char ch;
void outpos();
};
inline void Position::outpos() // ¿ÜºÎ¿¡ ÀÖÁö¸¸ °Á¦·Î inline
{ // À¸·Î ÁöÁ¤ÇÏ¿´´Ù.
}
¿©±â±îÁö ±¸Á¶Ã¼°¡ C++¿¡¼ ¾î¶² ½ÄÀ¸·Î È®ÀåµÇ¾î ¿Ô´ÂÁö¸¦ º¸¾Ò´Ù. ÇѸ¶µð·Î
¿ä¾àÇÑ´Ù¸é ±¸Á¶Ã¼°¡ ÇÔ¼ö±îÁö Æ÷ÇÔÇÒ ¼ö ÀÖ´Â ´É·ÂÀ» °¡Áö°Ô µÈ °ÍÀÌ´Ù. ±×·¯
³ª ±¸Á¶Ã¼ÀÇ ´É·ÂÀÌ ÀÌ·¸°Ô µÎµå·¯Áö°Ô ¹ßÀüÇÑ °ÍÀº »ç½ÇÀÌÁö¸¸ ½ÇÁ¦ C++ ÇÁ·Î
±×·¡¹Ö¿¡¼ ±¸Á¶Ã¼¿¡ ÇÔ¼ö¸¦ Æ÷ÇÔ½ÃÄÑ »ç¿ëÇÏ´Â °æ¿ì´Â µå¹°´Ù. ¿Ö³ÄÇϸé C++
À» ¸¸µç »ç¶÷µéÀÌ ÀÌ·¸°Ô È®ÀåµÈ ±¸Á¶Ã¼¸¦ ¾à°£ ´õ È®Àå½ÃÄѼ Ŭ·¡½º¶ó´Â »õ
·Î¿î °³³äÀ» ÁغñÇØ ³õ¾Ò±â ¶§¹®ÀÌ´Ù.
¿©±â¼ ±¸Á¶Ã¼ÀÇ È®Àå¿¡ ´ëÇØ ³íÇÑ °ÍÀº ¿©·¯ºÐµéÀÌ ÀÌ¹Ì ¾Ë°í ÀÖ´Â ±¸Á¶Ã¼ÀÇ
Áö½ÄÀ» ±â¹ÝÀ¸·Î Ŭ·¡½º¿¡ Á»´õ ½±°Ô ´Ù°¡°¡µµ·Ï Çϱâ À§ÇÔÀÌ´Ù. Âü°íÀûÀ¸·Î
±¸Á¶Ã¼¿Í ¸¶Âù°¡Áö·Î °ø¿ëü(union)µµ ¸â¹ö ÇÔ¼ö¸¦ °¡Áú ¼ö ÀÖµµ·Ï È®ÀåµÇ¾ú´Ù.
ÇÏÁö¸¸ ¸â¹ö ÇÔ¼ö¸¦ °¡Áö´Â °ø¿ëü´Â ±× »ç¿ëºóµµ°¡ ±ØÈ÷ ³·À¸¹Ç·Î ¿©±â¼´Â
¾ð±ÞÇÏÁö ¾Ê°Ú´Ù. ¾Æ¸¶ °ø¿ëü°¡ ¸â¹ö ÇÔ¼ö¸¦ °¡Áö´Â ¿¹¸¦ ±¸°æÇϱâ¶õ ÀϺη¯
¸¸µéÁö ¾Ê´Â ÇÑÀº º¸±â°¡ ¾î·Á¿ï °ÍÀÌ´Ù. ´ÙÀ½ Àý¿¡¼´Â ±¸Á¶Ã¼ÀÇ È®ÀåÆÇÀΠŬ
·¡½º¿¡ °üÇØ ¾Ë¾Æº»´Ù.
ÀÌ¾î¼ °è¼ÓµË´Ï´Ù. ==============>>>>>>>
--------------------------------------------------------------------------------