#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个

相关文章:

  • 2021-09-08
  • 2021-05-27
  • 2021-06-14
  • 2022-12-23
  • 2022-12-23
  • 2021-07-28
  • 2021-11-10
  • 2022-12-23
猜你喜欢
  • 2021-07-11
  • 2021-05-17
  • 2022-02-02
  • 2022-12-23
  • 2021-05-22
  • 2021-09-29
  • 2021-07-02
相关资源
相似解决方案