类继承方面的问题,求教

class A{

public :
A* a;
A(){a = this;}
};
class B : public A{
public:
B(){};
};

void main()
{
B* b = new B;
;
cout<< b << " " << b->a <<endl;
getchar();
}

为什么两次输出的结果是一样的,都是指向,A类对象在创建的时候,b还不存在,this指针怎么就指向了b呢?

b是首地址,b继承了a,所以b的首地址就是b->a。
而且,你new了没有delete = =