有人可以解释一下这个C++输出

Can someone please explain this C++ output

本文关键字:一下 输出 C++ 解释      更新时间:2023-10-16

我有这个 c++ 代码和代码的输出。有人可以告诉我这段代码是如何迭代的。我试图干运行流程,但无法弄清楚。

#include <iostream>
using namespace std;
class Something
{
public:
    Something(){cout<<"An";}
    virtual ~Something(){cout<<"Bn";}
};
class Parent
{
public:
    Parent(){cout<<"Cn";}
    virtual ~Parent(){cout<<"Dn";}
};
class Child : public Parent
{
public:
    Child(){cout<<"En";}
    Child(const Child& P){cout<<"Fn";}
    Child& operator=(const Child& rhs){cout<<"Gn";}
    virtual ~Child(){cout<<"Hn";}
protected:
    Something S_;
};
int main()
{
   Child ChildA;
   Child ChildB=ChildA;
   ChildA=ChildB;
   return 0;
}

外:C一个EC一个FGHBDHBD

所以你有一个继承和组合:孩子是父母,并且有一些东西。
无论如何,这是用例:

Child ChildA;

要生孩子,你必须做一个父母和什么东西。 在那里你可以得到:

C A E

要制作第二项,您将从ChildA复制,但您开始相同:制作父母,制作一些东西,然后复制一个孩子:

C A F

复制值:

G

然后从上到下销毁每个:

H B D

H B D