»ó¼ÓÀº ÀÌ¹Ì ¸¸µé¾îÁø Ŭ·¡½º¸¦ ÀçȰ¿ëÇÏ´Â °´Ã¼ ÁöÇâÀûÀÎ ±â¹ýÀÇ ÇϳªÀÌ´Ù. »ó¼ÓÀ» ¹ÞÀ¸¸é ±â¹Ý Ŭ·¡½º¿¡ ÀÌ¹Ì Á¤ÀÇµÈ ¼Ó¼º°ú µ¿ÀÛÀ» ±×´ë·Î Àç»ç¿ëÇÒ ¼ö ÀÖ¾î Ŭ·¡½º¸¦ ¸¸µå´Â ½Ã°£°ú ³ë·ÂÀ» Àý°¨ÇÒ ¼ö ÀÖ´Ù. ÀÌÀüÀÇ ÀýÂ÷½Ä ÇÁ·Î±×·¡¹Ö ±â¹ý¿¡¼´Â ã¾Æº¼ ¼ö ¾ø´Â ±â¹ßÇÏ°í ¸ÚÁø ¹æ¹ýÀ̱â´Â ÇÏ´Ù. ±×·¯³ª »ó¼Ó¸¸ÀÌ Å¬·¡½º¸¦ ÀçȰ¿ëÇÏ´Â À¯ÀÏÇÑ ±â¹ýÀº ¾Æ´Ï´Ù.
»ó¼Ó¿Ü¿¡µµ ÀüÅëÀûÀÎ Æ÷ÇÔ ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. Æ÷ÇÔ(Containment)À̶õ ÀçȰ¿ëÇÏ°í ½ÍÀº Ŭ·¡½ºÀÇ °´Ã¼¸¦ ¸â¹ö º¯¼ö·Î ¼±¾ðÇÏ´Â ¹æ¹ýÀÌ´Ù. Ŭ·¡½º¿¡ Æ÷ÇԵǴ ¸â¹öÀÇ Å¸ÀÔ¿¡´Â Á¦ÇÑÀÌ ¾øÀ¸¹Ç·Î ´Ù¸¥ Ŭ·¡½ºÀÇ °´Ã¼µµ ´ç¿¬È÷ ¸â¹ö°¡ µÉ ¼ö ÀÖ´Ù. C¿¡¼ ±¸Á¶Ã¼°¡ ´Ù¸¥ ±¸Á¶Ã¼¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â °Í°ú °³³äÀûÀ¸·Î µ¿ÀÏÇÏ¸ç »ç½Ç º°·Î Ưº°ÇÑ ±â¹ýµµ ¾Æ´Ï´Ù. ´ÙÀ½ ¿¹Á¦´Â Æ÷ÇÔ ±â¹ýÀ¸·Î Date Ŭ·¡½º¸¦ ÀçȰ¿ëÇÏ´Â °ÍÀ» º¸¿© ÁØ´Ù.
|
¿¹ Á¦ : MemObject |
#include <Turboc.h>
class Date
{
protected:
int year,month,day;
public:
Date(int y,int m,int d) { year=y;month=m;day=d; }
void OutDate() { printf("%d/%d/%d",year,month,day); }
};
class Product
{
private:
char Name[64];
char Company[32];
Date ValidTo;
int Price;
public:
Product(char *aN, char *aC, int y,int m,int d, int aP) : ValidTo(y,m,d) {
strcpy(Name,aN);
strcpy(Company,aC);
Price=aP;
}
void OutProduct() {
printf("À̸§:%s\n",Name);
printf("Á¦Á¶»ç:%s\n",Company);
printf("À¯È¿±â°£:");
ValidTo.OutDate();
puts("");
printf("°¡°Ý:%d\n",Price);
}
};
void main()
{
Product S("»õ¿ì±ø","³ó½É",2009,8,15,900);
S.OutProduct();
}
µÎ °³ÀÇ Å¬·¡½º°¡ ¼±¾ðµÇ¾î Àִµ¥ Date´Â Áö±Ý±îÁö °è¼Ó ºÁ ¿Ô´ø Ä£¼÷ÇÑ ³¯Â¥ Ŭ·¡½ºÀÌ´Ù. Product´Â Á¦Ç° Çϳª¿¡ ´ëÇÑ Á¤º¸¸¦ Ç¥ÇöÇϴµ¥ Á¦Ç°ÀÇ À̸§, Á¦Á¶»ç, À¯Åë±âÇÑ, °¡°Ý µîÀ» ¸â¹ö·Î °¡Áö°í ÀÖ´Ù. À̸§°ú Á¦Á¶»ç´Â ¹®ÀÚ¿ÀÌ°í °¡°ÝÀº Á¤¼öÀ̹ǷΠÀÌ¹Ì Àͼ÷ÇÑ char [ ]À̳ª intÇüÀ¸·Î ¼±¾ðÇÒ ¼ö ÀÖÁö¸¸ ³¯Â¥´Â ³â, ¿ù, ÀÏÀÇ ¿ä¼Ò·Î ±¸¼ºµÇ´Â ´Ù¼Ò º¹ÀâÇÑ Á¤º¸À̹ǷΠ´Ü¼ø ŸÀÔÀ¸·Î´Â ¼±¾ðÇÒ ¼ö ¾ø´Ù. ±×·¸´Ù°í ÇØ¼ Product°¡ year, month, day¸â¹ö¸¦ Á÷Á¢ ¼±¾ðÇÏ°í °ü¸®ÇÏ´Â °Íµµ ¹«Ã´ ¹ø°Å·Ó´Ù.
±×·¡¼ ÀÌ¹Ì ¸¸µé¾îÁ® ÀÖ´Â Date Ŭ·¡½º¸¦ ÀçȰ¿ëÇϱâ À§ÇØ DateÀÇ °´Ã¼ ValidTo¸¦ ¸â¹ö·Î ¼±¾ðÇß´Ù. Date¾È¿¡´Â ³¯Â¥¿Í °ü·ÃµÈ ¸ðµç ¼Ó¼º°ú ±â´ÉÀÌ Ä¸½¶ÈµÇ¾î ÀÖÀ¸¹Ç·Î Date ŸÀÔÀÇ °´Ã¼¸¦ ¸â¹ö·Î ¼±¾ðÇϱ⸸ Çϸé ÀÌ °´Ã¼¸¦ »ç¿ëÇØ ¼Õ½±°Ô À¯È¿±â°£À» Ç¥Çö ¹× °ü¸®ÇÒ ¼ö ÀÖ´Ù. ProductÀÇ ¸â¹ö ÇÔ¼ö OutProduct´Â ValidTo °´Ã¼ÀÇ OutDate ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÏ¿© À¯È¿±â°£À» Ãâ·ÂÇÑ´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.
À̸§:»õ¿ì±ø
Á¦Á¶»ç:³ó½É
À¯È¿±â°£:2009/8/15
°¡°Ý:900
°´Ã¼´Â »ý¼ºÀÚ º»Ã¼°¡ ½ÇÇàµÇ±â Àü¿¡ »ó¼Ó¹ÞÀº ¸ðµç ¸â¹ö¿Í Æ÷ÇÔµÈ °´Ã¼¸¦ ¿ÏÀüÈ÷ ÃʱâÈÇØ¾ß ÇÑ´Ù. ±×·¡¼ Æ÷ÇÔµÈ °´Ã¼´Â ¹Ýµå½Ã ÃʱâÈ ¸®½ºÆ®¿¡¼, Áï »ý¼ºÀÚ º»Ã¼ ÀÌÀü¿¡ ÃʱâÈÇØ¾ß ÇÑ´Ù. À̶§ ÃʱâÈ ¸®½ºÆ®¿¡´Â Ŭ·¡½º À̸§ÀÌ ¾Æ´Ñ ÃʱâÈÇϰíÀÚ ÇÏ´Â °´Ã¼ÀÇ ¸â¹ö À̸§À» »ç¿ëÇÑ´Ù. À§ ¿¹Á¦¿¡¼´Â Product »ý¼ºÀÚÀÇ ÃʱâÈ ¸®½ºÆ®¿¡¼ ValidTo(y,m,d)¸¦ È£ÃâÇÏ¿© ValidTo ¸â¹ö °´Ã¼¸¦ ÃʱâÈÇϰí ÀÖ´Ù. Date Ŭ·¡½º¸¦ ÃʱâÈÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó Product¿¡ Æ÷ÇÔµÈ ValidTo °´Ã¼¸¦ ÃʱâÈÇÏ´Â °ÍÀ̹ǷΠDate(y,m,d)·Î Àû¾î¼´Â ¾ÈµÈ´Ù.
¸¸¾à Æ÷ÇÔµÈ °´Ã¼¿¡ ´ëÇÑ Ãʱâ½ÄÀÌ ÃʱâÈ ¸®½ºÆ®¿¡¼ ¹ß°ßµÇÁö ¾ÊÀ¸¸é À̶§´Â µðÆúÆ® »ý¼ºÀÚ°¡ È£ÃâµÈ´Ù. Product »ý¼ºÀÚÀÇ ÃʱâÈ ¸®½ºÆ®¿¡¼ ValidTo Ãʱâ½ÄÀ» »© ¹ö¸®¸é DateÀÇ µðÆúÆ® »ý¼ºÀÚ°¡ È£ÃâµÇ´Âµ¥ ÀÌ Å¬·¡½º´Â µðÆúÆ® »ý¼ºÀÚ¸¦ Á¤ÀÇÇϰí ÀÖÁö ¾ÊÀ¸¹Ç·Î ¿¡·¯·Î ó¸®µÉ °ÍÀÌ´Ù. Æ÷ÇÔµÈ °´Ã¼¸¦ ¾î¶»°Ô ÃʱâÈÇÒÁö °áÁ¤ÇÒ ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. Date¿¡ ºó µðÆúÆ® »ý¼ºÀÚ¸¦ Ãß°¡Çϰí ProductÀÇ »ý¼ºÀÚ¸¦ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÏ¸é ¾î¶»°Ô µÉ±î?
Product(char *aN, char *aC, int y,int m,int d, int aP) {
ValidTo=Date(y,m,d);
strcpy(Name,aN);
strcpy(Company,aC);
Price=aP;
}
ÃʱâÈ ¸®½ºÆ®¿¡ ValidTo Ãʱâ½ÄÀ» »©°í ´ë½Å »ý¼ºÀÚ º»Ã¼¿¡ ´ëÀÔ¹®À» ÀÛ¼ºÇß´Ù. ÀÌ·¸°Ô ÇÏ¸é ¿¡·¯¾øÀÌ ÄÄÆÄÀϵǰí Product °´Ã¼°¡ Á¤»óÀûÀ¸·Î ÃʱâȵDZâ´Â ÇÏÁö¸¸ ÃʱâÈ °úÁ¤Àº »ó´çÈ÷ ´Þ¶óÁø´Ù. DateÀÇ µðÆúÆ® »ý¼ºÀÚ¿¡ ÀÇÇØ ValidTo°¡ ÀÏ´Ü ¾²·¹±â°ªÀ¸·Î ÃʱâÈµÈ ÈÄ ProductÀÇ »ý¼ºÀÚ º»Ã¼¿¡¼ ´Ù½Ã Date(int, int, int) »ý¼ºÀÚ¸¦ È£ÃâÇÏ¿© Àӽà °´Ã¼¸¦ »ý¼ºÇϰí ÀÌ Àӽà °´Ã¼°¡ ValidTo °´Ã¼·Î ´ëÀԵǸç ÀÌ °úÁ¤¿¡¼ ´ëÀÔ ¿¬»êÀÚ°¡ ½ÇÇàµÉ °ÍÀÌ´Ù.
µÎ °³ÀÇ »ý¼ºÀÚ°¡ Â÷·Ê´ë·Î È£ÃâµÇ´Â ÀÌÁß »ý¼º °úÁ¤À» °ÅÄ¡¸ç ´ëÀÔ ¿¬»êÀÚ±îÁö È£ÃâµÈ´Ù. Date´Â ¾ÆÁÖ ÀÛÀº Ŭ·¡½º¶ó º° ºÎ´ãÀÌ ¾øÁö¸¸ ´ëÇü Ŭ·¡½º´Â ÀÌ Â÷À̸¦ ¹«½ÃÇÒ ¼ö ¾ø´Ù. µðÆúÆ® ÃʱâÈ, Àӽà °´Ã¼ »ý¼º, ´ëÀÔ ¿¬»ê ÁßÀÇ ±íÀº º¹»ç, Àӽà °´Ã¼ ÆÄ±«±îÁö ¾öû³ª°Ô ±ä °úÁ¤À» °ÅÃÄ¾ß ÃʱâȰ¡ ¿Ï·áµÈ´Ù. ÀÌ·± º¹ÀâÇÑ °úÁ¤ÀÌ ½ÈÀ¸¸é ¹®¹ýÀÇ Á¤»óÀûÀÎ ±Ç°í´ë·Î ÃʱâÈ ¸®½ºÆ®¿¡¼ Æ÷ÇÔ °´Ã¼¸¦ ÃʱâÈÇÏ´Â °ÍÀÌ ÁÁ´Ù.
Product°¡ Date¸¦ Æ÷ÇÔÇϰí ÀÖ´Â ÀÌ·± °ü°è¸¦ HAS A °ü°è¶ó°í Çϴµ¥ ÀÏÁ¾ÀÇ ¼ÒÀ¯ °ü°èÀÌ¸ç »ó¼Ó °ü°è¸¦ Ç¥ÇöÇÏ´Â IS A¿Í´Â Àǹ̰¡ ´Ù¸£´Ù. Á¦Ç°ÀÌ À¯È¿±â°£ Ç¥ÇöÀ» À§ÇØ ³¯Â¥¸¦ ¼ÒÀ¯(Product has a Date)ÇÏ´Â °ÍÀÌÁö Á¦Ç°ÀÌ ÀÏÁ¾ÀÇ ³¯Â¥(Product is a Date)ÀÎ °ÍÀº ¾Æ´Ï´Ù. µÎ Ŭ·¡½ºÀÇ °ü°è°¡ IS A °ü°èÀÏ ¶§´Â ÁÖ·Î public »ó¼ÓÀ» »ç¿ëÇϰí HAS A °ü°èÀÏ ¶§´Â Æ÷ÇÔ ±â¹ýÀÌ ÀûÇÕÇÏ´Ù. ±×·¯³ª ¸ðµç Ŭ·¡½ºÀÇ °ü°è°¡ ÀÌó·³ ¸íÈ®ÇÏ°Ô ±¸ºÐµÇ´Â °ÍÀº ¾Æ´Ï¹Ç·Î Àý´ëÀûÀÎ ÀçȰ¿ë ¹ýÄ¢À̶ó°í Çϱâ´Â ¾î·Æ´Ù.