Warum erfolgt in C++ diese Ausgabe?

Hallo, gegeben ist folgender C+±Code:

#include
#include
using namespace std;

class Myclass
{
private:
string Name;
public:
Myclass (string name)
{
cout

  1. Ausgabe: Hallo -> Du erzeugst die Instanz instance und der Konstruktur wird aufgerufen in welchem cout Du erzeugst die 2 Instanz (siehe 1)

  2. Ausgabe: Bye -> anotherinstance wurde auf dem Stack
    erzeugt (ohne new) und stirbt nach dem aktuellen Block -> Aufruf Destruktor

  3. Ausgabe: CreateFromInstance -> Du machst übergist als Parameter ein Objekt der Print. Dadurch wird der Copykonstruktor aufgerufen der in diesem Fall deinem 2ten Konstruktor entspricht in welchem der cout ausgeführt wird.

  4. Ausgabe: Sein Name ist Hans -> Die Print führt nun mit dem kopierten Objekt den cout durch.

  5. Ausgabe: Bye -> Die print Methode ist zuende. Da auch das kopierte Ojekt auf dem Stack erzeugt wurde, wird es nun der Destruktor aufgerufen um danach das Objekt zu zerstören.

  6. Ausgabe: Bye -> Die main Methode ist zuende und das
    Objekt instance welches auch lediglich auf dem Stack existiert stirbt -> Aufruf Destruktor

Ich denke das müsste so stimmen. Falls nicht bitte ich um Korrektur :smile:
MfG