rendered paste body#include <iostream>
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
class Base {
protected:
Base(void* ptr) : _ptr(ptr) {;}
virtual ~Base() {std::cout<<"Base dest"<<std::endl; delete _ptr; _ptr=0; };
void* _ptr;
};
template<class T>
class Derivated : public Base {
public:
Derivated(int size) : Base((T*)0), iSize(size) { T* _ptr1 = new T[size]; _ptr = _ptr1; *((T*) _ptr) = 20; *((T*) _ptr+1) = 100; *((T*) _ptr+2) = 150;};
~Derivated() {
std::cout<<"Derivated"<<std::endl;
//Temppu:
T *p = (T*)_ptr;
T *tmp = p;
delete (p + 2);
delete (p + 1);
delete p;
p = 0;
_ptr = 0;
/* T *p((T*)_ptr) ;
_ptr = 0;
*/
//std::cout<<"_ptr: "<<*((T*)_ptr)<<std::endl;
/*
for(int i = 0; i <iSize ; i++){
delete[] p;
}
p = 0;
*/
};
int iSize;
};
int main(){
Derivated<int> olio(2);
std::cout<<"tila: "<<sizeof(olio)<<std::endl;
//int *taulu = new int[10];
//taulu[0] = 0;
//taulu[1] = 1;
//int taulu[10] = { 0,1,2,3,4,5,6,7,8,9};
//std::cout<<"tulos: "<<*(taulu+2)<<std::endl;
_CrtDumpMemoryLeaks();
return 0;
}