我有这个c ++代码和代码的输出。有人可以告诉我这个代码是如何迭代的。我试图干流但不能弄明白。
#include <iostream>
using namespace std;
class Something
{
public:
Something(){cout<<"A\n";}
virtual ~Something(){cout<<"B\n";}
};
class Parent
{
public:
Parent(){cout<<"C\n";}
virtual ~Parent(){cout<<"D\n";}
};
class Child : public Parent
{
public:
Child(){cout<<"E\n";}
Child(const Child& P){cout<<"F\n";}
Child& operator=(const Child& rhs){cout<<"G\n";}
virtual ~Child(){cout<<"H\n";}
protected:
Something S_;
};
int main()
{
Child ChildA;
Child ChildB=ChildA;
ChildA=ChildB;
return 0;
}
输出: C 一个 Ë C 一个 F G H 乙 d H 乙 d
答案 0 :(得分:2)
所以你有一个继承和组成:孩子是父母,有一些东西 无论如何,这是用例:
Child ChildA;
要成为一个孩子,你必须做一个父母和一个东西。你得到:
C A E
要制作第二个项目,你将从ChildA
复制,但你从同样开始:做一个父母,做一些事情,然后复制一个孩子:
C A F
复制一个值:
然后从上到下摧毁每个人:
H B D H B D