옵션 |
|
#include <iostream>
using namespace std;
const int STACK_MAX = 4;
// Stack ----------------------------------------
template <typename T>
class Stack {
private:
int topIndex;
T* stackPtr;
public:
Stack(int size);
~Stack();
void push(const T& pushValue);
T pop();
};
template <typename T>
Stack<T>::Stack(int size) { // :: '앞'에 <T>
this->stackPtr = new T[size];
this->topIndex = -1;
}
Stack<int*> stack4(STACK_MAX);
이렇게 템플릿을 이용해서 스택을 만들면.
T가 포인터 형이라서
스택을 int 형으로 만들면
int* 형 스택이되고
int*을 이용해서 만들면
int**형 스택이 되잖아요?
위에있는 코드를 이용해서
배열값이나 일반변수를 push 하면
주소가 들어가나요 어떻게 들어가나요? 완벽하게 이해를 못해서 고수님들께 질문드립니다.