ÅÛÇø´ÀÇ Àμö¿¿¡ µé¾î°¥ ¼ö Àִ ŸÀÔ¿¡´Â Ưº°ÇÑ Á¦ÇÑÀÌ ¾ø´Ù. ±âº» ŸÀÔÀº ¹°·ÐÀ̰í Ŭ·¡½º ŸÀÔµµ ÅÛÇø´ÀÇ Àμö¿¿¡ ³ÖÀ» ¼ö ÀÖ´Ù. ±×·¸´Ù¸é ÅÛÇø´À¸·Î ¸¸µç Ŭ·¡½ºµµ ºÐ¸íÈ÷ ŸÀÔÀÇ ÀÏÁ¾À̹ǷΠ´Ù¸¥ ÅÛÇø´ÀÇ Àμö°¡ µÉ ¼ö ÀÖ´Ù´Â ¾ê±âÀε¥ Áï, ÅÛÇø´³¢¸® ÁßøµÉ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â PosValue ÅÛÇø´ Ŭ·¡½º¸¦ ¿ä¼Ò·Î °¡Áö´Â ½ºÅÃÀ» Á¤ÀÇÇÑ´Ù.
|
¿¹ Á¦ : NestTemplate |
#include <Turboc.h>
#include <iostream>
using namespace std;
#include "TStack.h"
template <typename T>
class PosValue
{
private:
int x,y;
T value;
public:
PosValue() : x(0),y(0),value(0) { }
PosValue(int ax, int ay, T av) : x(ax),y(ay),value(av) { }
void OutValue() {
gotoxy(x,y);
cout << value << endl;
}
};
void main()
{
TStack<PosValue<int> > sPos(10);
PosValue<int> p1(5,5,123);
PosValue<int> p2;
sPos.Push(p1);
p2=sPos.Pop();
p2.OutValue();
}
¼±µÎ¿¡´Â TStack Ŭ·¡½º ÅÛÇø´°ú PosValue Ŭ·¡½º ÅÛÇø´ÀÌ ¼±¾ðµÇ¾î ÀÖÀ¸¸ç ÀÌ µÎ ÅÛÇø´À¸·Î ÀÓÀÇÀÇ Å¸ÀÔ¿¡ ´ëÇÑ ½ºÅðú PosValue °´Ã¼¸¦ ¸¸µé ¼ö ÀÖ´Ù. ÃʱâȵÇÁö ¾ÊÀº °´Ã¼¸¦ ¸¸µé ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ PosValue¿¡ µðÆúÆ® »ý¼ºÀÚ¸¦ Ãß°¡·Î Á¤ÀÇÇß´Ù. main¿¡¼´Â ´Ù¼Ò º¹ÀâÇÑ Çü½ÄÀ» °¡Áö´Â sPos¶ó´Â °´Ã¼¸¦ ¼±¾ðÇϰí Àִµ¥ ÀÌ °´Ã¼´Â TStackÀ¸·ÎºÎÅÍ ¸¸µé¾îÁ³À¸¹Ç·Î ÀÏ´ÜÀº ½ºÅÃÀÌ´Ù. ½ºÅÿ¡ µé¾î°¡´Â ¿ä¼Ò´Â Àμö¿¿¡ ÀÖ´Â PosValue<int> ŸÀÔÀ̹ǷΠÀÌ·± °´Ã¼µéÀÇ Àӽà ÀúÀå¼Ò°¡ µÈ´Ù.
mainÀÇ ³ª¸ÓÁö ÄÚµå´Â PosValue<int>ÇüÀÇ °´Ã¼ p1, p2 µÑÀ» ¼±¾ðÇϰí p1À» ½ºÅÿ¡ Ǫ½ÃÇÑ ÈÄ p2·Î ÆËÇØ º¸¾Ò´Ù. Ǫ½ÃÇÑ °ªÀ» ±×´ë·Î »©³» ´ëÀÔÇßÀ¸¹Ç·Î p2°¡ p1°ú °°¾ÆÁú °ÍÀÌ´Ù. p2ÀÇ °ªÀ» Ãâ·ÂÇØ º¸¸é p1ÀÇ »ý¼ºÀÚ¿¡¼ ÃʱâÈÇÑ À§Ä¡¿¡ 123À̶ó´Â °ªÀÌ Ãâ·ÂµÉ °ÍÀÌ´Ù. ÄÄÆÄÀÏ·¯´Â ÁßøµÈ ¼±¾ð¹®¿¡¼ ¾ÈÂÊ Å¬·¡½ººÎÅÍ Â÷·Ê´ë·Î ±¸Ã¼ÈÇÑ´Ù. ÅÛÇø´³¢¸® ÁßøµÇ¾î ÀÖÀ» »ÓÀÌÁö º°´Ù¸¥ »çÇ×Àº ¾ø´Ù. ´Ü, ÀÌ·± Áßø ÅÛÇø´ ¼±¾ð¹®À» ÀÛ¼ºÇÒ ¶§ ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇؼ´Â ¾ÈµÈ´Ù.
TStack<PosValue<int>> sPos(10);
ÅÛÇø´ Àμö¿¾È¿¡ Àμö¿ÀÌ ÀÖÀ¸¹Ç·Î ´Ý´Â °ýÈ£ >°¡ µÎ ¹ø ¿¬°ÅǪ ³ª¿À´Âµ¥ ÀÌ·¸°Ô µÇ¸é ÄÄÆÄÀÏ·¯´Â >>¸¦ ¿À¸¥ÂÊ ½¬ÇÁÆ® ¿¬»êÀÚ·Î ÇØ¼®ÇÏ°Ô µÈ´Ù. ¼±¾ð¹®¿¡ ¿¬»êÀÚ°¡ ¿Ã ¼ö ¾øÀ¸¹Ç·Î ÀÌ ¹®ÀåÀº ¿¡·¯·Î ó¸®µÉ °ÍÀÌ´Ù. ±×·¡¼ ÅÛÇø´³¢¸® ÁßøµÉ ¶§ Àμö¿ÀÇ ´Ý´Â °ýÈ£ »çÀÌ¿¡´Â ¹Ýµå½Ã °ø¹éÀ» Çϳª ³Ö¾î ½¬ÇÁÆ® ¿¬»êÀÚ¿Í ±¸ºÐµÇµµ·Ï ÇØ¾ß ÇÑ´Ù.
C++Àº ÅÛÇø´ÀÇ ÁßøÀ» ¹®¹ýÀûÀ¸·Î Çã°¡ÇϹǷΠÀÌÁß »ïÁßÀ¸·Î ÅÛÇø´À» ÁßøÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª ¹®¹ý°ú´Â º°°³·Î ÅÛÇø´³¢¸® ÁßøµÇ·Á¸é µÎ Ŭ·¡½º°¡ ÀÓÀÇÀÇ Å¸ÀÔ¿¡ ´ëÇØ¼µµ Àß µ¿ÀÛÇÒ ¼ö ÀÖµµ·Ï ÃæºÐÈ÷ ÀϹÝȵǾî ÀÖ¾î¾ß ÇÑ´Ù. ´ë»ó ŸÀÔÀ» ¼öÄ¡ÇüÀ¸·Î °¡Á¤ÇÏ¿© -1°°Àº ƯÀ̰ªÀ» »ç¿ëÇØ¼´Â ¾ÈµÇ¸ç ´ëÀÔ ¿¬»êÀ» ÇÏ´Â ¿ä¼Ò´Â ´ëÀÔ ¿¬»êÀÚ¸¦ ÀûÀýÇÏ°Ô ¿À¹ö·ÎµùÇØ¾ß ÇÑ´Ù. Ãâ·Â¹®À¸·Î coutÀ» »ç¿ëÇÑ´Ù¸é ´ë»ó ŸÀÔÀº << ¿¬»êÀÚµµ Á¤ÀÇÇØ¾ß ÇÑ´Ù.
ÅÛÇø´³¢¸® Áßø °¡´ÉÇϹǷΠÀÚ½ÅÀÌ ÀÚ½ÅÀ» Æ÷ÇÔÇÏ´Â ÅÛÇø´À» ¸¸µé ¼ö ÀÖ´Ù. TDArray Ŭ·¡½º ÅÛÇø´Àº ÀÓÀÇÀÇ Å¸ÀÔÀ» ¹è¿ ¿ä¼Ò·Î °¡Áú ¼ö Àִµ¥ ±× ŸÀÔÀ» TDArray·Î ÁØ´Ù¸é µ¿Àû ¹è¿ÀÇ µ¿Àû ¹è¿À» ¸¸µå´Â °Íµµ °¡´ÉÇÏ´Ù´Â ¾ê±âÀÌ´Ù. TDArray<TDArray<int> > ara;´Â Á¤¼öÇüÀ» ¿ä¼Ò·Î °¡Áö´Â µ¿Àû ¹è¿À» ¿ä¼Ò·Î °¡Áö´Â µ¿Àû ¹è¿ ara¸¦ ¼±¾ðÇÑ °ÍÀÌ´Ù.