找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2342|回复: 0
打印 上一主题 下一主题
收起左侧

虚函数调用优先级

[复制链接]
跳转到指定楼层
楼主
ID:3721 发表于 2015-1-5 14:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
class   A
{
public:
    int aa;
    A() : aa( 1 ){}
    ~A(){}
    virtual void    ABC(){ aa    = 2; }
};
class   B : public A
{
public:
    B(){}
    ~B(){}
    virtual void    ABC(){ aa    = 3; }
};
class   C : public B
{
public:
    C(){}
    ~C(){}
};
class   D : public C
{
public:
    D(){}
    ~D(){}
};
a   = new D;//这时候aa的值为1,这是初始化的效果
a->ABC();//这时候aa的值为3,调用的是类B中的ABC()

思考结果:虚函数调用时,沿着继承逆方向寻找调用函数,中间有一个层次没有定义相应函数则会继续在其直接基类中寻找,依此类推。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表