I have written a simple, working tetris game with each block as an instance of a class singleblock.
class SingleBlock
{
public:
SingleBlock(int, int)
Delete doesn't delete anything -- it just marks the memory as "being free for reuse". Until some other allocation call reserves and fills that space it will have the old data. However, relying on that is a big no-no, basically if you delete something forget about it.
One of the practices in this regard that is often encountered in libraries is a Delete function:
template< class T > void Delete( T*& pointer )
{
delete pointer;
pointer = NULL;
}
This prevents us from accidentally accessing invalid memory.
Note that it is perfectly okay to call delete NULL;.