首页 > 其他 > 详细

派生类调用基类方法时会自动转成基类类型

时间:2019-12-21 12:56:51      阅读:93      评论:0      收藏:0      [点我收藏+]
class A
{
    public:
    int a;
    void showthis()
    {
        printf("from A,this:%p\n", this);
    }
};
class B
{
    public:
    int b;
    void infothis()
    {
        printf("from B,this:%p\n", this);
    }
};
class C:public A, public B
{
    public:
    C(){
        printf("from C:this:%p\n", this);    
    }
};

int main()
{
    C c;
    c.showthis();
    c.infothis();
    
    return 0;
}

编译运行,输出:

from C:this:0x7ffff4321a80
from A,this:0x7ffff4321a80
from B,this:0x7ffff4321a84

类型转换可能伴随着this地址的变化,派生类的this和基类的this所指有偏差,要转成基类this指针.

派生类调用基类方法时会自动转成基类类型

原文:https://www.cnblogs.com/xiang-yin/p/12076262.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!