¾Õ Ç×ÀÇ Time°ú Date·ÎºÎÅÍ Now¸¦ ´ÙÁß »ó¼ÓÇÏ´Â ¿¹Á¦´Â Time°ú Date°¡ ¿ÏÀüÈ÷ µ¶¸³µÈ Ŭ·¡½ºÀ̱⠶§¹®¿¡ ¾Æ¹«·± ¹®Á¦°¡ ¾øÀ¸¸ç ÀÌ·¸°Ô ¸¸µé¾îÁø Now Ŭ·¡½ºµµ ¾ÆÁÖ Á¤»óÀûÀ¸·Î Àß µ¿ÀÛÇÑ´Ù. ±×·¯³ª ´ÙÁß »ó¼ÓÀº »ó¼Ó °æ·Î°¡ ¿©·µÀ̱⠶§¹®¿¡ º¹ÀâÇÑ ¹®Á¦¸¦ ¾ß±âÇÏ´Â °æ¿ì°¡ ¸¹´Ù. ÀÏ´Ü ´ÙÀ½ ¼±¾ð¹®À» º¸ÀÚ.
class B : public A, public A
{
....
};
A¶ó´Â ÇϳªÀÇ Å¬·¡½º·ÎºÎÅÍ ´ÙÁß »ó¼Ó¹Þ¾Æ B¸¦ ÆÄ»ý½Ã۴µ¥ ÀÌ ÄÚµå´Â ¿¡·¯·Î 󸮵ȴÙ. ÇÑ Å¬·¡½º·ÎºÎÅÍ µÎ ¹ø »ó¼ÓÀ» ¹Þ´Â °ÍÀº ±ÝÁöµÇ¾î Àִµ¥ ¿Ö³ÄÇϸé ÀÌ·¸°Ô ÆÄ»ýµÈ Ŭ·¡½º¿¡´Â ¶È°°Àº À̸§ÀÇ ¸â¹öµéÀÌ µÎ °³¾¿ Á¸ÀçÇÏ°Ô µÇ¹Ç·Î ¸â¹ö À̸§°£¿¡ Ãæµ¹ÀÌ »ý±â±â ¶§¹®ÀÌ´Ù. A¿¡ mÀ̶ó´Â ¸â¹ö°¡ ÀÖÀ» ¶§ b.mÀÌ ¾î´À ÂÊÀÇ A·ÎºÎÅÍ ¹°·Á¹ÞÀº mÀÎÁö ¾Ö¸ÅÇϸç b.A::m ½ÄÀ¸·Î ¹üÀ§ ¿¬»êÀÚ¸¦ ½áµµ º° µµ¿òÀÌ ¾ÈµÈ´Ù. ¹®¹ýÀûÀÎ ÀÌÀ¯¸¦ µûÁöÁö ¾Ê´õ¶óµµ ÀÌ·± Áߺ¹ »ó¼ÓÀÌ ¹®Á¦°¡ µÉ °ÍÀÓÀº Á÷°¨ÀûÀ¸·Î ÀÌÇØÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª °£Á¢ÀûÀ¸·Î ÇÑ Å¬·¡½º¸¦ µÎ ¹ø »ó¼ÓÇÏ´Â °ÍÀº °¡´ÉÇѵ¥ ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.
|
¿¹ Á¦ : VirtualBase1 |
#include <Turboc.h>
class A
{
protected:
int a;
public:
A(int aa) { a=aa; }
};
class B : public A
{
protected:
int b;
public:
B(int aa, int ab) : A(aa) { b=ab; }
};
class C : public A
{
protected:
int c;
public:
C(int aa,int ac) : A(aa) { c=ac; }
};
class D : public B, public C
{
protected:
int d;
public:
D(int aa, int ab, int ac, int ad) : B(aa,ab), C(aa,ac) { d=ad; }
void fD() {
b=1;
c=2;
a=3; // ¿©±â¼ ¹®Á¦ ¹ß»ý
}
};
void main()
{
D d(1,2,3,4);
}
4°³ÀÇ Å¬·¡½º°¡ °èÃþÀ» ±¸¼ºÇϰí Àִµ¥ Ŭ·¡½º°£ÀÇ »ó¼Ó °ü°è¸¦ ±×¸²À¸·Î ±×·Á º¸¸é ´ÙÀ½°ú °°´Ù. ¿©·¯ °¡Áö º¹ÀâÇÑ ¹®Á¦¸¦ ÀÏÀ¸Å°±â ¶§¹®¿¡ ÀÌ·± Ŭ·¡½º °èÃþµµ¸¦ °øÆ÷ÀÇ ´ÙÀ̾Ƹóµå(¶Ç´Â ¸¶¸§¸ð) °èÃþµµ¶ó°í ºÎ¸¥´Ù.

DÀÇ ºÎ¸ðÀÎ B, C´Â ¸ðµÎ A¸¦ °øµ¿ÀÇ Á¶»óÀ¸·Î °¡Áö°í ÀÖÀ¸¸ç ±×·¡¼ D´Â °£Á¢ÀûÀ¸·Î A¸¦ µÎ ¹ø »ó¼Ó¹Þ´Â´Ù. B¿Í C°¡ ¸ðµÎ A·ÎºÎÅÍ »ó¼Ó¹ÞÀº ¸â¹ö º¯¼ö a¸¦ °¡Áö°í ÀÖ°í D´Â B¿Í C·ÎºÎÅÍ »ó¼ÓÀ» ¹Þ¾ÒÀ¸¹Ç·Î °á±¹ D¿¡´Â a¶ó´Â À̸§ÀÇ ¸â¹ö º¯¼ö°¡ µÎ °³ Á¸ÀçÇÏ´Â °ÍÀÌ´Ù. ÀÌ µÎ º¯¼ö°¡ ¶È°°Àº Àǹ̸¦ °¡Áø´Ù¸é ³ª¸ÓÁö Çϳª´Â ºÒÇÊ¿äÇϹǷΠ±â¾ï Àå¼Ò°¡ ¾µµ¥¾øÀÌ ³¶ºñµÇ°í °´Ã¼°¡ ºñ´ëÇØÁö´Â ¹®Á¦°¡ ÀÖ´Ù. Ä«¸Þ¶ó ÆùÀº Ä«¸Þ¶óÀÇ ±â´É°ú ÇÚµåÆùÀÇ ±â´ÉÀ» ¸ðµÎ »ó¼Ó¹Þ¾Æ¾ß Ç쵂 ±×·¸´Ù°í ÇØ¼ ¹åµ¥¸®¸¦ µÎ °³³ª °¡Áú ÇÊ¿ä´Â ¾øÁö ¾ÊÀº°¡?
±× º¸´Ù ½É°¢ÇÑ ¹®Á¦´Â DÀÇ °´Ã¼¿¡¼ a ¸â¹ö¸¦ ĪÇÒ ¶§ ¾î¶² ¸â¹ö¸¦ ĪÇÏ´ÂÁö ¾Ë ¼ö ¾ø´Â ¸ðÈ£ÇÔÀÌ ¹ß»ýÇÑ´Ù´Â °ÍÀÌ´Ù. »ó¼Ó¹ÞÀº ¼öÁØÀÌ °°±â ¶§¹®¿¡ Áö¿ª, Àü¿ªÃ³·³ ¿ì¼± ¼øÀ§¸¦ ¸Å±æ ¼öµµ ¾ø´Ù. À§ ¿¹Á¦¸¦ ÄÄÆÄÀÏÇØ º¸¸é fD ¸â¹ö ÇÔ¼öÀÇ ¼¼ ¹øÂ° ÁÙÀÇ a=3; ¹®Àå¿¡¼ a°¡ ¸ðÈ£ÇÏ´Ù´Â ¿¡·¯ ¸Þ½ÃÁö°¡ Ãâ·ÂµÉ °ÍÀÌ´Ù. ¶È°°Àº À̸§ÀÇ ¸â¹ö°¡ µÑ¾¿À̳ª ÀÖÀ¸´Ï ÄÄÆÄÀÏ·¯°¡ Çò°¥·ÁÇÏ´Â °ÍÀÌ ´ç¿¬ÇÏ´Ù. ÀÌ Á¡Àº ¸â¹ö ÇÔ¼ö¿¡ ´ëÇØ¼µµ ¸¶Âù°¡ÁöÀÌ´Ù. B¿¡ f ÇÔ¼ö°¡ ÀÖ°í C¿¡ °°Àº À̸§ÀÇ f ÇÔ¼ö°¡ ÀÖÀ» ¶§ DÀÇ °´Ã¼¿¡¼ f¸¦ È£ÃâÇÏ¸é µµ´ëü ¾î´ÀÂÊÀ» È£ÃâÇ϶ó´Â °ÍÀÎÁö ¾Ö¸ÅÇØÁø´Ù.
¸¸¾à °¢ °æ·Î¸¦ ÅëÇØ »ó¼Ó¹ÞÀº ¶È°°Àº À̸§ÀÇ a°¡ ºñ·Ï À̸§Àº °°´õ¶óµµ ¼·Î ´Ù¸¥ Àǹ̸¦ °¡Áø´Ù¸é D¿¡¼ B::a, C::a ½ÄÀ¸·Î ¼Ò¼Ó ±â¹Ý Ŭ·¡½º¸¦ ¸í½ÃÇÔÀ¸·Î½á µÎ º¯¼ö¸¦ ±¸ºÐÇÒ ¼ö´Â ÀÖ´Ù. ÀÏÀÏÀÌ ´©±¸·ÎºÎÅÍ »ó¼Ó¹ÞÀº ¸â¹öÀÎÁö¸¦ ¹àÇô¾ß ÇÑ´Ù´Â Á¡ÀÌ ¹«Ã´ ¹ø°Å·Ó±â´Â ÇÏÁö¸¸ ¾î·µç ¸ðÈ£ÇÔÀ» ÇÇÇÒ ¹æ¹ýÀº ÀÖ´Â ¼ÀÀÌ´Ù.
´ÙÁß »ó¼Ó¹ÞÀº Áߺ¹µÈ ¸â¹ö°¡ °°Àº À̸§À¸·Î °¢±â ´Ù¸¥ Àǹ̸¦ °¡Áö´Â °æ¿ì´Â ±×¸® ÈçÇÏÁö ¾ÊÁö¸¸ ¾î·µç °¡´ÉÀº ÇÏ´Ù. ´ÙÀ½ ¿¹´Â Á» ´õ º¹ÀâÇÑ ´ÙÁß »ó¼ÓÀÇ ¿¹·Î Áߺ¹µÈ ¸â¹ö°¡ ¼·Î ´Ù¸¥ Àǹ̷Π»ç¿ëµÇ´Â °æ¿ì¸¦ ¾ïÁö·Î ¸¸µé¾î º» °ÍÀÌ´Ù. ÃÖ´ëÇÑ °£´ÜÇÏ°Ô ¸¸µé·Á°í ÇßÁö¸¸ ´ÙÁß »ó¼ÓÀ̶ó´Â »óȲ ÀÚü°¡ º¹ÀâÇϱ⠶§¹®¿¡ ±æÀ̰¡ Á» ±æ´Ù.
|
¿¹ Á¦ : VirtualBase2 |
#include <Turboc.h>
#include <math.h>
class Coord
{
protected:
int x,y;
public:
Coord(int ax, int ay) { x=ax;y=ay; }
void GetXY(int &rx, int &ry) const { rx=x;ry=y; }
void SetXY(int ax, int ay) { x=ax;y=ay; }
};
class Point : public Coord
{
protected:
char ch;
public:
Point(int ax, int ay, char ach) : Coord(ax,ay) { ch=ach; }
void Show() {
gotoxy(x,y);putch(ch);
}
void Hide() {
gotoxy(x,y);putch(' ');
}
};
class Circle : public Point
{
protected:
int Rad;
public:
Circle(int ax, int ay, char ach, int aRad) : Point(ax,ay,ach) { Rad=aRad; }
void Show() {
for (double a=0;a<360;a+=15) {
gotoxy(int(x+sin(a*3.14/180)*Rad),int(y-cos(a*3.14/180)*Rad));
putch(ch);
}
}
void Hide() {
for (double a=0;a<360;a+=15) {
gotoxy(int(x+sin(a*3.14/180)*Rad),int(y-cos(a*3.14/180)*Rad));
putch(' ');
}
}
};
class Message : public Coord
{
private:
char Mes[128];
public:
Message(int ax, int ay, char *M) : Coord(ax,ay) {
strcpy(Mes,M);
}
void Show() {
gotoxy(x-strlen(Mes)/2,y);
puts(Mes);
}
};
class CirMessage : public Circle, public Message
{
public:
CirMessage(int ax, int ay, char ach, int aRad, int mx, int my, char *M)
: Circle(ax,ay,ach,aRad), Message(mx,my,M) { }
public:
void Show() {
Circle::Show();
Message::Show();
}
};
void main()
{
CirMessage CM(10,10,'.',8,40,15,"Å×½ºÆ®");
CM.Show();
}
Coord, Point, CircleÀº Áö±Ý±îÁöÀÇ ¿¹Á¦¿¡¼ °è¼Ó »ç¿ëÇØ¿Ô´ø °ÍµéÀ̸ç Coord·ÎºÎÅÍ ÆÄ»ýµÈ Message Ŭ·¡½º°¡ Ãß°¡µÇ¾ú´Âµ¥ x, y À§Ä¡¿¡ ¹®ÀÚ¿À» Áß¾Ó Á¤·ÄÇÏ¿© Ãâ·ÂÇÏ´Â ±â´ÉÀ» °¡Áø´Ù. ÀÌ »óÅ¿¡¼ ¿ø°ú ¸Þ½ÃÁö¸¦ µ¿½Ã¿¡ Ç¥ÇöÇÏ´Â CirMessage Ŭ·¡½º¸¦ Á¤ÀÇÇϰíÀÚ ÇÑ´Ù¸é ÀÌ¹Ì ¸¸µé¾îÁø Circle°ú Message Ŭ·¡½º·ÎºÎÅÍ ´ÙÁß »ó¼ÓÀ» ¹ÞÀ¸¸é µÈ´Ù. Àüü Ŭ·¡½º °èÃþµµ´Â ´ÙÀ½°ú °°´Ù.

Circle°ú Message´Â °øµ¿ÀÇ Á¶»ó Coord·ÎºÎÅÍ ÆÄ»ýµÇ¾úÀ¸¹Ç·Î ÀÌ µÎ Ŭ·¡½º¸¦ ´ÙÁß »ó¼Ó¹Þ´Â CirMessage¿¡´Â x, y ¸â¹ö°¡ µÎ °³¾¿ Á¸ÀçÇÏ°Ô µÈ´Ù. ÇÏÁö¸¸ ÀÌ ¿¹Á¦ÀÇ °æ¿ì´Â ºñ·Ï ¸â¹ö°¡ Áߺ¹µÇ±â´Â ÇßÁö¸¸ CirMessage¿¡¼ ÀÌ ¸â¹öµéÀ» Á÷Á¢ »ç¿ëÇÏÁö´Â ¾ÊÀ¸¹Ç·Î ¹®¹ýÀûÀ¸·Î º° ¹®Á¦°¡ ¾øÀ¸¸ç ¶ÇÇÑ Áߺ¹µÈ ¸â¹öÀÇ Àǹ̵µ ´Ù¸£´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

main¿¡¼ »ý¼ºÇÑ CM°´Ã¼ÀÇ ÃʱⰪ¿¡ µû¶ó ¿øÀº (10,10) Á߽ɿ¡ ¹ÝÁö¸§ 8·Î ±×·ÁÁ³°í ¸Þ½ÃÁö´Â (40,15)¿¡ Ãâ·ÂµÇ¾ú´Ù. CirMessageÀÇ µÎ ÁÂÇ¥ (x, y) Áß Circle·ÎºÎÅÍ »ó¼Ó¹ÞÀº ÁÂÇ¥´Â ¿øÀÇ Áß½ÉÁ¡À» ÁöÁ¤Çϸç Message·ÎºÎÅÍ »ó¼Ó¹ÞÀº ÁÂÇ¥´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÒ ÁÂÇ¥¸¦ ÁöÁ¤ÇÑ´Ù. Áߺ¹µÈ ¸â¹öÀÇ Àǹ̰¡ È®½ÇÈ÷ ´Ù¸£¸ç ¿ø°ú ¸Þ½ÃÁö°¡ °¢°¢ ´Ù¸¥ À§Ä¡¿¡ Ãâ·ÂµÉ ¼ö ÀÖ´Ù.
±×·¸´Ù¸é À̰ÍÀÌ °ú¿¬ CirMessage Ŭ·¡½º¸¦ ¸¸µç °³¹ßÀÚÀÇ Àǵµ¿Í ÀÏÄ¡ÇÏ´Â °ÍÀÏ±î »ý°¢ÇØ º¸ÀÚ. ¾Æ¸¶ ±×·¸Áö ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ Å¬·¡½º´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í ±× ÁÖº¯¿¡ Àû´çÇÑ Å©±âÀÇ ¿øÀ» ±×¸²À¸·Î½á Àå½ÄÇÏ´Â ±â´ÉÀ» °¡Áö´Â °ÍÀ¸·Î ÀÛ¼ºµÇ¾úÀ» °ÍÀÌ´Ù. ¸Þ½ÃÁö¿Í ¿øÀÌ µû·Î ³î¾Æ¾ß ÇÑ´Ù¸é ÅëÇÕÀÇ Àǹ̰¡ ¾ø´Â ¼ÀÀÌ¸ç ¾ÖÃÊ¿¡ ÀÌ·± °É ¿øÇß´Ù¸é ´ÙÁß »ó¼Ó°°Àº º¹ÀâÇÑ ¹®¹ýÀ» ¾µ ÇÊ¿ä¾øÀÌ µÎ °³ÀÇ °´Ã¼¸¦ µû·Î ¸¸µé¸é µÈ´Ù. ¹°·Ð °´Ã¼ÀÇ ÃʱⰪ¿¡¼ ¿øÀÇ ÁÂÇ¥¿Í ¸Þ½ÃÁöÀÇ ÁÂÇ¥¸¦ ÀÏÄ¡½Ã۸é ÀÌ·± °´Ã¼¸¦ ±×¸± ¼ö´Â ÀÖ´Ù.
CirMessage CM(40,10,'.',8,40,10,"Å×½ºÆ®");
mainÀÇ Äڵ带 ÀÌ·¸°Ô ¼öÁ¤Çϸé (40,10)¿¡ ¸Þ½ÃÁö°¡ Ãâ·ÂµÇ°í ±× ÁÖº¯¿¡ ¿øÀÌ ¿¹»Ú°Ô ±×·ÁÁú °ÍÀÌ´Ù. ÇÏÁö¸¸ ÀÌ·± ÃʱâÈ ¹æ¹ýÀº Áߺ¹µÈ ÃʱⰪÀ» ÁÖ¾î¾ß ÇÑ´Ù´Â °Í°ú »ç¿ëÀÚ¿¡°Ô ¶È°°Àº °ªÀ» µÎ ¹ø ÁöÁ¤Çϵµ·Ï °¿äÇÑ´Ù´Â Á¡¿¡¼ "ÃÖ¼Ò ÀÇ»ç Ç¥½Ã" ¿øÄ¢¿¡ ¾î±ß³´Ù. µÎ ¸â¹öÀÇ Àǹ̰¡ °°´Ù¸é ÃʱⰪÀ» ÇÑ ¹ø¸¸ ÁöÁ¤ÇÏ´Â °ÍÀÌ ¸¶¶¥ÇÏ´Ù.