Code
#include <iostream>
using namespace std;
class rvo {
public:
rvo(char c) { m_c = c; cout << "Constructor rvo c = " << c << endl; }
~rvo() { cout << "Destructor rvo c = " << m_c << endl; }
char m_c;
};
int main ()
{
cout << "start" << endl;
rvo t = rvo('A');
cout << "p 1" << endl;
t = rvo('B');
cout << "end" << endl;
}
Alles anzeigen
Ausgabe:
Code
start
Constructor rvo c = A
p 1
Constructor rvo c = B
Destructor rvo c = B
end
Destructor rvo c = B
OK, der Constructor wird 2 mal gerufen, und der Destructor auch.
Trotzdem bin ich beunruhigt: das Object mit m_c ==' A ' wird nicht zerstört . Was, wenn da jetzt was wichtiges drin stehen würden, z.B. Speicher freigeben, der mit 'A' assoziiert ist?
~ Markus