Warum erfolgt in C++ diese Ausgabe?
Von: , Frage gestellt am Sa, 15. Aug 2009
Hallo, gegeben ist folgender C++-Code:
#include <iostream>
#include <string>
using namespace std;
class Myclass
{
private:
string Name;
public:
Myclass (string name)
{
cout << "Hallo" << endl;
Name = name;
}
Myclass (Myclass& instance)
{
cout << "CreateFromInstance" << endl;
Name = instance.Name;
}
~Myclass ()
{
cout << "Bye" << endl;
}
string GetName()
{
return Name;
}
};
void print(Myclass m)
{
cout << "Sein Name ist " << m.GetName() << endl;
}
int main ()
{
Myclass instance ("Hans");
{
Myclass anotherinstance ("Karl");
}
print (instance);
return 0;
}
Die Ausgabe lautet:
Hallo
Hallo
Bye
CreateFromInstance
Sein Name ist Hans
Bye
Bye
Warum ist das so?
Danke!
