关于类 this指针的问题
有3个类ABC;B继承A;C无关紧要。Coc;A的构造函数定义:CA::conA(&oc){oc->func(this);}B的构造函数定义:CB::conB(&oc):...
有3个类ABC;B 继承 A;C 无关紧要。
C oc;
A的构造函数定义:
CA :: conA(&oc)
{
oc -> func(this);
}
B 的构造函数定义:
CB :: conB(&oc) : conA(oc) {} // 有参继承嘛,我晓得
现在有这样一段代码:
B ob(&oc);
问题来了:
A没有实例化对象,这个this指向的是谁啊!!?
求详解!!谢谢 展开
C oc;
A的构造函数定义:
CA :: conA(&oc)
{
oc -> func(this);
}
B 的构造函数定义:
CB :: conB(&oc) : conA(oc) {} // 有参继承嘛,我晓得
现在有这样一段代码:
B ob(&oc);
问题来了:
A没有实例化对象,这个this指向的是谁啊!!?
求详解!!谢谢 展开
1个回答
展开全部
其实继承可以理解为在原基础上再加上一块。你这里的this指向的是个B类实例,但在oc -> func(this);调用时它只把这个B实例看做是A实例,(B新加上的那一块看不见)。
更多追问追答
追问
确实指向的是ob;但是不懂是为啥
追答
指向ob不奇怪啊,任何this都是指向自己这个实例。只不过你可以吧这个实例看做B类,或看做A类而已,就像一个小女孩,我可以把他笼统地看做一个人类,也可以再细一点把她当成个女人,如果再细一点就当成小女孩。看的角度不同而已,但看到的还是这个具体的小女孩。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询