Hvorfor blive min deconstructor ikke kaldt?
Hej jeg sidder med følgende kode og undre mig over at min deconstructor ikke bliver kaldt :(#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#define maxSize 11
template<class E> class stack
{
public:
stack()
{
element = new E[maxSize];
i = 0;
}
~stack()
{
cout << "decon"<<endl;
delete[] element;
}
void add(E elem);
void pop();
E print();
private:
E* element;
int i;
};
template<class E>
E stack<E>::print()
{
for(int i=0; i<= maxSize; i++)
{
cout << "element["<<i<<"]" << element[i] << endl;
}
}
template<class E>
void stack<E>::add(E elem)
{
if(i == maxSize)
{
cout <<"max size paa " << maxSize << "er naaet"<<endl;
}else
{
element[i] = elem;
i++;
}
}
int main()
{
stack<int> i_stack;
i_stack.add(2);
i_stack.add(5);
i_stack.add(6);
i_stack.print();
system("PAUSE");
return 0;
}