Hallo, gegeben ist folgender C+±Code:
#include
#include
using namespace std;
class Myclass
{
private:
string Name;
public:
Myclass (string name)
{
cout
Hallo, gegeben ist folgender C+±Code:
#include
#include
using namespace std;
class Myclass
{
private:
string Name;
public:
Myclass (string name)
{
cout
Ausgabe: Hallo -> Du erzeugst die Instanz instance und der Konstruktur wird aufgerufen in welchem cout Du erzeugst die 2 Instanz (siehe 1)
Ausgabe: Bye -> anotherinstance wurde auf dem Stack
erzeugt (ohne new) und stirbt nach dem aktuellen Block -> Aufruf Destruktor
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.
Ausgabe: Sein Name ist Hans -> Die Print führt nun mit dem kopierten Objekt den cout durch.
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.
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
MfG