D
derBobby
Gast
Hallo,
ich habe hier eine überladene Operatorfunktion und die scheint irgendwo einen Konstruktor zu verwenden, ich verstehe nur nicht wo oder warum. Kann mir das jemand erklären?
Meine main führt folgendes aus:
Die überladene Operatorfunktion:
Der Konstruktor:
Der Kopier-Konstruktor:
Meiner erwartete Ausgabe wäre:
Konstruktor...
Konstruktor...
Konstruktor...
Die Ausgabe ist diese:
Konstruktor...
Konstruktor...
Konstruktor...
Konstruktor...
Also ein Konstruktoraufruf mehr als gedacht. Wo liegt mein Denkfehler? Oder wo meine Unwissenheit?
ich habe hier eine überladene Operatorfunktion und die scheint irgendwo einen Konstruktor zu verwenden, ich verstehe nur nicht wo oder warum. Kann mir das jemand erklären?
Meine main führt folgendes aus:
Code:
Bruch b1(1,2);
Bruch b2(2,3);
Bruch b3 = b1 * b2;
Die überladene Operatorfunktion:
Code:
const Bruch & Bruch::operator *= (const Bruch &b)
{
[INDENT]return *this = *this * b;[/INDENT]
}
Der Konstruktor:
Code:
Bruch::Bruch(int z, int n) : zaehler(z), nenner(n)
{
[INDENT]cout << "Konstruktor" << endl; [/INDENT]
}
Der Kopier-Konstruktor:
Code:
Bruch::Bruch(const Bruch &rhs)
{
[INDENT]cout << "Kopier-Konstruktor" << endl;
zaehler = rhs.zaehler; nenner = rhs.nenner; [/INDENT]
}
Meiner erwartete Ausgabe wäre:
Konstruktor...
Konstruktor...
Konstruktor...
Die Ausgabe ist diese:
Konstruktor...
Konstruktor...
Konstruktor...
Konstruktor...
Also ein Konstruktoraufruf mehr als gedacht. Wo liegt mein Denkfehler? Oder wo meine Unwissenheit?
Zuletzt bearbeitet von einem Moderator: