<p class="p1"><span class="s1">#include </span><span class="s2"><iostream></span></p> <p class="p2"><span class="s2">using</span><span class="s3"> </span><span class="s2">namespace</span><span class="s3"> </span><span class="s4">std</span><span class="s3">;</span></p> <p class="p3"><span class="s5">const</span><span class="s2"> </span><span class="s5">int</span><span class="s2"> STACK_MAX = </span><span class="s6">4</span><span class="s2">;</span></p> <p class="p4"><span class="s2">// Stack ----------------------------------------</span></p> <p class="p2"><span class="s2">template</span><span class="s3"> <</span><span class="s2">typename</span><span class="s3"> T></span></p> <p class="p3"><span class="s5">class</span><span class="s2"> Stack {</span></p> <p class="p2"><span class="s2">private</span><span class="s3">:</span></p> <p class="p3"><span class="s2"> </span><span class="s5">int</span><span class="s2"> topIndex;</span></p> <p class="p3"><span class="s2"> T* stackPtr;</span></p> <p class="p2"><span class="s2">public</span><span class="s3">:</span></p> <p class="p3"><span class="s2"> Stack(</span><span class="s5">int</span><span class="s2"> size);</span></p> <p class="p3"><span class="s2"> ~Stack();</span></p> <p class="p3"><span class="s2"> </span><span class="s5">void</span><span class="s2"> push(</span><span class="s5">const</span><span class="s2"> T& pushValue);</span></p> <p class="p3"><span class="s2"> T pop();</span></p> <p class="p1"><span class="s1"> </span></p> <p class="p3"><span class="s2">};</span></p> <p class="p1"><span class="s1">template</span><span class="s2"> <</span><span class="s1">typename</span><span class="s2"> T></span></p> <p class="p2"><span class="s3">Stack</span><span class="s1"><T>::Stack(</span><span class="s4">int</span><span class="s1"> size) { </span><span class="s5">// :: '</span><span class="s6">앞</span><span class="s5">'</span><span class="s6">에</span><span class="s5"> <T></span></p> <p class="p2"><span class="s1"> </span><span class="s4">this</span><span class="s1">->stackPtr = </span><span class="s4">new</span><span class="s1"> T[size];</span></p> <p class="p2"><span class="s1"> </span><span class="s4">this</span><span class="s1">->topIndex = -</span><span class="s7">1</span><span class="s1">;</span></p> <p class="p1"><span class="s1"> </span></p> <p class="p2"><span class="s1">}</span></p> <p class="p1"><span class="s1">Stack</span><span class="s2"><</span><span class="s3">int</span><span class="s2">*> stack4(</span><span class="s1">STACK_MAX</span><span class="s2">);</span></p> <p class="p1"><span class="s2"><br></span></p> <p class="p1"><span class="s2">이렇게 템플릿을 이용해서 스택을 만들면. </span></p> <p class="p1"><span class="s2">T가 포인터 형이라서 </span></p> <p class="p1">스택을 int 형으로 만들면</p> <p class="p1">int* 형 스택이되고</p> <p class="p1">int*을 이용해서 만들면</p> <p class="p1">int**형 스택이 되잖아요?</p> <p class="p1">위에있는 코드를 이용해서</p> <p class="p1">배열값이나 일반변수를 push 하면</p> <p class="p1">주소가 들어가나요 어떻게 들어가나요? 완벽하게 이해를 못해서 고수님들께 질문드립니다.</p>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.