2 zp839781310 zp839781310 于 2013.11.07 15:42 提问

类继承方面的问题,求教
c++

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呢?

1个回答

qq051121
qq051121   2013.11.12 07:37

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

zp839781310
zp839781310 这种说法基本上是对的,不过地址跟继承顺序有关,如果是多继承的话,就不一定相等了,我其实想问的是后半句,现在已经知道答案了,谢谢
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!