【发布时间】:2020-01-16 07:44:57
【问题描述】:
这是来自即将到来的考试中过去论文的程序。我已经尝试稍微编辑文件以查看会发生什么,但我仍然对为什么它以这种特定顺序打印感到困惑。
#include <iostream>
using namespace std;
class HAMMER
{
public:
HAMMER() {cout << " HAMMER";}
virtual ~HAMMER() { cout << " ~HAMMER "; }
};
class TAPE
{
public:
TAPE(){cout << " TAPE "; }
virtual ~TAPE() { cout << " ~TAPE"; }
};
class TOOL
{
public:
TOOL(){cout << " TOOL "; }
virtual ~TOOL() { cout << " ~TOOL"; }
protected:
HAMMER hammer;
};
class WRENCH
{
public:
WRENCH(){cout << " WRENCH "; }
virtual ~WRENCH() { cout << " ~WRENCH"; }
protected:
HAMMER hammer;
};
class SHOVEL
{
public:
SHOVEL(){cout << " SHOVEL "; }
virtual ~SHOVEL() { cout << " ~SHOVEL"; }
protected:
TAPE dog;
};
class SWEEPER: public TOOL
{
public:
SWEEPER(){cout << " SWEEPER "; };
virtual ~SWEEPER(){ cout << " ~SWEEPER " ; };
protected:
TAPE dog;
WRENCH wrench;
SHOVEL shovel;
};
int main()
{
SWEEPER b;
}
这是输出
HAMMER 工具 胶带 锤子 扳手 胶带 铲子 清扫器 ~SWEEPER ~铲子 ~TAPE ~WRENCH ~HAMMER ~TAPE ~TOOL ~HAMMER
为什么 TAPE 没有出现在 TOOL 之前?并且同样没有出现倒数第二?
编辑:除了这两个之外,它似乎完全按照从上到下的顺序出现,然后又反过来
【问题讨论】:
-
请解释你为什么特别期待。
-
已编辑,道歉。
-
这种奇怪的格式。来自 Python 并拒绝适应 C++ 约定的人?
-
不是我的代码,但无论如何他似乎都是顽固的类型。
标签: c++