[C++]°­ÁÂ(6)<--¹®¹ýÀÇ ¾ö°Ý¼º




»ç. ±¸Á¶Ã¼ űװ¡ µ¥ÀÌÅÍ Å¸ÀÔÀÌ µÈ´Ù.

C¿¡¼­´Â ±¸Á¶Ã¼ ű׸¦ »ç¿ëÇÏ¿© ±¸Á¶Ã¼ÀÇ ÇüƲÀ» ¸ÕÀú ±â¾ï½ÃŲ ÈÄ Å±׸¦
»ç¿ëÇØ ±¸Á¶Ã¼ º¯¼ö¸¦ ¼±¾ðÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

struct strutag
{
int a;
char b;
double c;
};
struct strutag strvar;

¸ÕÀú ±¸Á¶Ã¼ÀÇ ¸ð¾ç°ú ÇüŸ¦ strutag¶õ À̸§À¸·Î ±â¾ï½ÃŲ ÈÄ struct strutag
ÇüÀÇ º¯¼ö¸¦ ¼±¾ðÇÑ´Ù. À̶§ ±¸Á¶Ã¼ º¯¼ö ¼±¾ð½Ã struct Å°¿öµå¿Í űװ¡ µ¿½Ã
¿¡ ÀÖ¾î¾ß Çϴµ¥ »ç½Ç strutag°¡ ±¸Á¶Ã¼ÀÇ Å±×ÀÓÀÌ ±¸º°ÀÌ µÇ´Â ÀÌ»ó struct
Å°¿öµå°¡ ºÒÇÊ¿äÇÏ´Ù. ±×·¡¼­ C++¿¡¼­´Â ÀÌ ºÒÇÊ¿äÇÑ struct Å°¿öµå¸¦ »© ¹ö¸®
°í ÅÂ±× À̸§¸¸ °¡Áö°í ±¸Á¶Ã¼ º¯¼ö¸¦ ¼±¾ðÇÒ¼ö ÀÖµµ·Ï ÇÏ¿´´Ù.

struct strutag
{
int a;
char b;
double c;
};
strutag strvar;

ÀÌ ¹®Á¦´Â ´Ü¼øÈ÷ struct¶ó´Â ´Ü¾î Çϳª°¡ ÀÖ°í ¾ø°í°¡ Áß¿äÇÑ °ÍÀÌ ¾Æ´Ï¶ó
C++¿¡¼­´Â ±¸Á¶Ã¼ ÀÚü°¡ ÇϳªÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î °£Áֵȴٴ °ÍÀÌ´Ù. ÀÌ°ÍÀº
ºñ´Ü ±¸Á¶Ã¼¿¡¸¸ ±¹ÇѵǴ »çÇ×ÀÌ ¾Æ´Ï¸ç ű׸¦ °¡Áö´Â °ø¿ëü(union)¿Í ¿­°Å
Çü(enum) ¹× C++¿¡¼­ È®ÀåµÈ ±¸Á¶Ã¼ÀΠŬ·¡½º(class)¿¡ ¸ðµÎ Àû¿ëµÇ´Â »çÇ×ÀÌ
´Ù.
C´Â ´Ù¸¥ ¾ð¾î¿Í´Â ´Þ¸® ÁøÀ§Çü(boolean)ÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» º°µµ·Î Áö¿øÇÏÁö
¾Ê´Â´Ù. ±×·¡¼­ ÁøÀ§ÇüÀÌ ²À ÇÊ¿äÇÑ °æ¿ì¿¡´Â ´ëü·Î ¿­°ÅÇüÀ» »ç¿ëÇÏ¿© ÁøÀ§
ÇüÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» ¸¸µé¾î¼­ »ç¿ëÇÑ´Ù. C++¿¡¼­´Â ¿­°ÅÇüÀÇ Å±׵µ µ¶¸³ÀûÀÎ
µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î ÀÎÁ¤µÇ¹Ç·Î ´ÙÀ½°ú °°ÀÌ °£´ÜÇÏ°Ô ÁøÀ§ÇüÀ» ¸¸µé ¼ö ÀÖ´Ù.

enum boolean { FALSE, TRUE };
boolean isdie;
if ( isdie == TRUE)
cout << " Àß Á×¾ú´Ù" << endl;

½ÇÁ¦·Î windows ÇÁ·Î±×·¡¹Ö¿¡¼­´Â windows.h¿¡ ÀÌ·± ÁøÀ§ÇüÀ» ¼±¾ðÇØ µÎ°í »ç
¿ëÇÑ´Ù.

¾Æ. À̸§¾ø´Â °ø¿ëü

ÇÑ È¸»ç¿¡¼­ °í°´ °ü¸® ÇÁ·Î±×·¥À»  Â§´Ù°í ÇÏÀÚ. °í°´ÀÇ ½Å»óÀ» ±â¾ï½ÃÅ°±â
À§ÇØ ±¸Á¶Ã¼¸¦ Á¤ÀÇÇÏ¿© »ç¿ëÇϱâ·Î Çߴµ¥ °í°´ÀÇ À̸§À» ¾Æ´Â °æ¿ì°¡ ÀÖ°í
Á¢¼ö ¹øÈ£¸¦ ¾Ë°í ÀÖ´Â °æ¿ì°¡ À־ °í°´ÀÇ À̸§°ú Á¢¼ö ¹øÈ£ µÎ °¡Áö Áß ¾Ë
°í ÀÖ´Â ÇÑ °¡Áö¸¦ »ç¿ëÇϱâ·Î Çß´Ù. ÀÌ·± °æ¿ì´Â ±¸Á¶Ã¼ ¼Ó¿¡ °ø¿ëü°¡ ´ÙÀ½
°ú °°ÀÌ »ðÀԵǾî¾ß ÇÑ´Ù.

struct ctag
{
 union
 {
     char name[10];
     int num;
 } ID;
 int age;
 int duration;
} custom[100];

°ø¿ëü ID°¡ ±¸Á¶Ã¼ custom ³»ºÎ¿¡ À§Ä¡ÇØ ÀÖ´Â ¸ð¾çÀÌ´Ù.

¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤
¦¢      num           ¦¢          name                      ¦¢
¦§¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦«¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥
¦¢      age           ¦¢
¦§¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦©
¦¢      duration      ¦¢
¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥

À̶§ ±¸Á¶Ã¼ ³»ÀÇ °ø¿ëü ³»ÀÇ ¸â¹ö¸¦ ÂüÁ¶ÇÏ°íÀÚ ÇÒ ¶§´Â ´ÙÀ½°ú °°ÀÌ dot ¿¬
»êÀÚ¸¦ ÀÌÁßÀ¸·Î »ç¿ëÇÑ´Ù.

custom[10].ID.name
custom[10].ID.num

ÀÌ ¹æ¹ýÀÌ C¿¡¼­ ÀüÅëÀûÀ¸·Î »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. ±×·±µ¥ À§ÀÇ °æ¿ì °ø¿ëü ID
°¡ ±»ÀÌ À̸§À» °¡Áú ÇÊ¿ä°¡ ¾øÀ¸¸ç nameÀ̳ª numÀÌ ÂüÁ¶µÉ °æ¿ì´Â ´ç¿¬È÷ ¸Õ
Àú ID°¡ ÂüÁ¶ µÇ¾î¾ß ÇÑ´Ù. ±×·¡¼­ C++¿¡¼­´Â ±¸Á¶Ã¼ ¾ÈÀÇ °ø¿ëü´Â À̸§À» ÁÖ
Áö ¾Ê°íµµ °ð¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖµµ·Ï µÇ¾î ÀÖ´Ù. ´ÙÀ½°ú °°ÀÌ.

struct ctag
{
 union
 {
     char name[10];
     int num;
 };
 int age;
 int duration;
} custom[100];

ÀÌ·¸°Ô ÇÏ´õ¶óµµ nameÀ̳ª numÀÌ ÇϳªÀÇ °ø¿ëü ¼Ò¼ÓÀÓÀº ºÐ¸íÇÏ°Ô ±¸ºÐµÇ¹Ç·Î
¾Æ¹«·± ¹«¸®°¡ ¾ø´Ù. ÀÌ·¸°Ô ¼±¾ðµÈ °ø¿ëü¸¦ À̸§¾ø´Â °ø¿ëü(anonymous union
)¶óÇÑ´Ù. ÀÌÁ¦ °ø¿ëüÀÇ À̸§À» °æÀ¯ÇÏÁö ¾Ê°í ±¸Á¶Ã¼¿Í °ø¿ëüÀÇ ¸â¹ö¸¸ °¡Áö
°í °ð¹Ù·Î ÂüÁ¶°¡ °¡´ÉÇØÁø´Ù.

custom[10].name
custom.num

µî°ú °°ÀÌ ¸»ÀÌ´Ù. ´ÙÀ½Àº Á»´õ °£´ÜÇÑ ÇüÅ·ΠÀ̸§¾ø´Â °ø¿ëü¸¦ ±¸ÇöÇغ» °Í
ÀÌ´Ù.

#include <iostream.h>

void main()
{
 union
 {
 int i;
 double f;
 };

 i = 3;
 cout << "integer is " << i << endl;
 f = 3.14;
 cout << "real number is "<< f << endl;
}

¼±¾ðµÈ °ø¿ëüÀÇ À̸§ÀÌ ÁÖ¾îÁ® ÀÖÁö ¾ÊÀ» »Ó¸¸ ¾Æ´Ï¶ó °ø¿ëü ³»ÀÇ ¸â¹ö¸¦
ÂüÁ¶ÇÒ ¶§ ¼Ò¼Ó °ø¿ëü¸¦ ¸í½ÃÇÏÁö ¾Ê°í °ð¹Ù·Î ¸â¹öÀÇ À̸§À¸·Î ÂüÁ¶¸¦ ÇÏ¿´
´Ù. i¿Í f´Â ¹°·Ð °°Àº ±â¾ïÀå¼Ò¸¦ °øÀ¯ÇÏ°í ÀÖ´Ù.

ÀÚ. ¸í½ÃÀû ij½ºÆ® ¿¬»êÀÚ

C´Â ´Ù¸¥ Á¾·ùÀÇ µ¥ÀÌÅÍ Å¸ÀÔ³¢¸® È¥¿ëÇÒ ¼ö ÀÖ´Â À¶Å뼺À» Á¦°øÇϸç ÁÖ·Î µ¥
ÀÌÅÍ Å¸ÀÔ³¢¸®ÀÇ Çü º¯È¯À» ÅëÇÏ¿© °°Àº ŸÀÔÀ¸·Î ¸ÂÃß¾î »ç¿ëÇϵµ·Ï ÇÑ´Ù. ¿©
±â¿¡ ´ëÇؼ­´Â 5Àå 11Àý¿¡ ÀÚ¼¼È÷ ¾ð±ÞµÇ¾î ÀÖ´Ù. ±×·±µ¥ µ¥ÀÌÅÍ Å¸ÀÔ³¢¸® ÀÚ
µ¿ º¯È¯ÀÌ ÀÌ·ç¾îÁú ¼ö ¾ø´Â »óȲÀ̰ųª ¾Æ´Ï¸é °­Á¦ÀûÀ¸·Î µ¥ÀÌÅÍ Å¸ÀÔÀ» º¯
ȯ½ÃÄÑ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖÀ» ¶§´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ij½ºÆ® ¿¬»êÀÚ¸¦ »ç¿ëÇÏ
¿´´Ù.

int i;
float f;
f = ( float)i;

À̶§ ij½ºÆ® ¿¬»êÀÚ´Â ¿¬»êÀÚ ÇÔ¼öÀÇ ÇüÅ·Π½ÇÇàµÇ¹Ç·Î ´ÙÀ½°ú °°ÀÌ ÇÔ¼ö Çü
Å·εµ ij½ºÆ® ¿¬»êÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·± ij½ºÆ® ¿¬»êÀÚÀÇ »ç¿ë ¹æ¹ýÀº
C++¿¡¼­ È®ÀåµÈ ³»¿ëÀÌ¸ç ±âÁ¸ÀÇ C¿¡¼­´Â ÀÌ ¹æ¹ýÀ» ¾µ ¼ö ¾ø´Ù.

int i;
float f;
f = float( i);

ij½ºÆ® ¿¬»êÀÚ¸¦ Á¾Àü´ë·Î ¿¬»êÀÚÀÇ ÇüÅ·Π»ç¿ëÇÏ´Â °ÍÀº ¾Ï½ÃÀû ij½ºÆ® ¿¬
»êÀÚ¶ó Çϸç ÇÔ¼öÀÇ ÇüÅ·Π»ç¿ëÇÏ´Â °ÍÀ» ¸í½ÃÀû ij½ºÆ® ¿¬»êÀÚ¶ó°í ÇÑ´Ù. ´Ù
À½ ¿¹Á¦¿¡¼­ µÎ ij½ºÆ® ¿¬»êÀÚÀÇ »ç¿ë ¹æ¹ýÀ» º¸ÀδÙ. µÎ ¹æ¹ý Áß ¾î´À ¹æ¹ýÀ»
»ç¿ëÇϰųª °á°ú´Â µ¿ÀÏÇÏ´Ù.

#include <iostream.h>

void main()
{
 int i = 3;
 double d;
 d = ( double)i;    // ¾Ï½ÃÀû ij½ºÆ® ¿¬»êÀÚ.
 d = double( i);    // ¸í½ÃÀû ij½ºÆ® ¿¬»êÀÚ.
 cout << d << endl;
}


À̾ °è¼ÓµË´Ï´Ù. ==============>>>>>>>


--------------------------------------------------------------------------------