I just realised that this program compiles and runs (gcc version 4.4.5 / Ubuntu):
#include using namespace std; class Test { public: // copyc
I don't know the spec reference, but I do know that accessing an uninitialized pointer always results in undefined behaviour.
When I compile your code in Visual C++ I get:
test.cpp(20): warning C4700: uninitialized local variable 'b' used