1. 在一个继承体系中,最底层的派生类在构造过程中,先初始化基类部分,再按继承层次依次初始化派生类部分,因此被构造的对象先作为一个基类对象,再按继承层次依次成为派生类对象,例如,在继承层次A→B→C→D中,构造一个D类对象,其依次经历了A→B→C→D的转变,因此对于以下代码:

#include <iostream>
using namespace std;
class A{
public:
    virtual void foo(){ cout << "A" << endl; }
    A(){ foo(); }
};
class B :public A{
public:
    void foo(){ cout << "B" << endl; }
    B(){ foo(); }
};
class C :public B{
public:
    void foo(){ cout << "C" << endl; }
    C(){ foo(); }
};
class D :public C{
public:
    void foo(){ cout << "D" << endl; }
    D(){ foo(); }
};
int main() {
    D d;
    system("pause");
    return 0;
}
View Code

相关文章:

  • 2022-12-23
  • 2021-05-11
  • 2021-10-13
  • 2021-06-23
  • 2021-06-22
  • 2022-12-23
  • 2021-06-09
  • 2022-12-23
猜你喜欢
  • 2021-10-01
  • 2022-12-23
  • 2021-10-28
  • 2022-12-23
  • 2021-07-05
  • 2021-05-28
  • 2021-12-24
相关资源
相似解决方案