Thanks for the quick replies Tabstop and c++0x

Interesting idea c++0x. Perhaps this would be OK as the class isn't that large. Just checking my understanding here - that the instance created within the function would be copied wholesale into the vector and although the destructor wil be called on the instance itself, there will still be a copy stored in the array? And as the vector uses the heap, there is no real saving to be had from using pointers?

Perhaps this will be for practice then, but if I were to dynamically allocate instances of the Block - does this look OK for clearing it up? I haven't fully understood iterators yet, so I'm using indexing at the moment.

Code:
void BlockGenerator::reset() {
    for (int i = 0; i < BlockGenerator::blockList.size(); i++) {
        delete BlockGenerator::blockList[i];
        BlockGenerator::blockList[i] = NULL;
    }
    BlockGenerator::blockList.clear();
}