All pastes #421673 Raw Edit

Tuoki^

public text v1 · immutable
·published 2007-04-02 23:25 UTC
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;
}