zoukankan      html  css  js  c++  java
  • C++的虚函数试题,常考!!

    #include <iostream>
    #include <cstring>
    #include <string.h>
    #include <stdio.h>
    using namespace std;
    
    class parent
    {
    public:
    virtual void output();
    virtual void aaa();
    };
    void parent::output()
    {
    cout<<"parent";
    aaa();
    }
    void parent::aaa()
    {
    cout<<"aaa";
    }
    class son:public parent
    {
    
    public:
        virtual void output();
        virtual void aaa();
    };
    void son::output()
    {
        cout<<"son";
        aaa();
    }
    void son::aaa()
    {
    cout<<"bbb";
    }
    int main()
    {
    son s;
    //memset(&s,0,sizeof(s));
    parent &p=s;//reference
    p.output();
    cout<<endl;
    parent *q=&s;//pointer
    q->output();
    return 0;
    }

    输出

    sonbbb
    sonbbb
    构造父类引用或者指针,在运行时才决定调用哪一个子类还是本身的函数,当没有virtual时,调用自己 的函数。
    当有virtual时调用子类的同名复写函数。。。。



    附加题
    一颗完全2叉树有699个节点,求叶子结点?
    对于完全二叉树,根节点到上一层节点的所有结点是512个,因此最后一层叶子结点是187个;
    对应予上一层的父节点有187/2+1=94个;
    上一层的所有结点数为,256;
    因此上一层剩余的结点数位256-94=162个。并且这些结点就是叶子结点。
    因此叶子结点总数为187plus162=349个

  • 相关阅读:
    Bootstrap的下拉菜单float问题
    style标签进行实时编辑及修改css(转)
    立即调用的函数表达式IIFE
    标签球Js插件
    如何正确使用Google搜索
    练习一:四则运算
    ARM伪指令
    vim 命令总结
    dialog BLE SDK 学习(1)
    ARM指令集
  • 原文地址:https://www.cnblogs.com/fickleness/p/3342752.html
Copyright © 2011-2022 走看看