C++多态的实现原理
在《C++多态的实现原理【转】》里面有这么一句话“首先要调用animal类的构造函数去构造animal类的对象,然后才调用fish类的构造函数完成自身部分的构造,从而拼接...
在《C++多态的实现原理【转】》里面有这么一句话
“首先要调用animal类的构造函数去构造animal类的对象,然后才调用fish类的构造函数完成自身部分的构造,从而拼接出一个完整的fish对象。”
也就是在子类的对象里面会产生两个虚指针吗?一个是父类的构造函数生成时的,一个是子类函数生成时的?为什么我在单步调试的时候只看见一个虚指针捏?
而且,若是两个拼接而成的,那不适用虚函数是不是可以看成是
父对象指针对子对象的截取,只取其继承的部分。
还有个问题是,想问一下,指针只是一个地址,为什么能辨别他指向的结构的元素呢?像这个父指针指向了子对象,为什么不能访问子对象的不是继承而来的函数或元素?
其实这个一直困扰着我! 展开
“首先要调用animal类的构造函数去构造animal类的对象,然后才调用fish类的构造函数完成自身部分的构造,从而拼接出一个完整的fish对象。”
也就是在子类的对象里面会产生两个虚指针吗?一个是父类的构造函数生成时的,一个是子类函数生成时的?为什么我在单步调试的时候只看见一个虚指针捏?
而且,若是两个拼接而成的,那不适用虚函数是不是可以看成是
父对象指针对子对象的截取,只取其继承的部分。
还有个问题是,想问一下,指针只是一个地址,为什么能辨别他指向的结构的元素呢?像这个父指针指向了子对象,为什么不能访问子对象的不是继承而来的函数或元素?
其实这个一直困扰着我! 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询