Hallo,
mir fehlt das Verständnis für folgenden Code:
C
cat test.cpp
#include <stdlib.h>
#include <map>
class test
{
public:
~test()
{
printf("~test\n");
}
};
int main()
{
std::map<int,test> m_map;
// test t;
m_map[1] = *(new test());
printf("exit\n");
return 0;
}
Alles anzeigen
Die Ausgabe lautet:
~test
~test
exit
~test
Mir ist vollkommen unklar wieso beim Einfügen der Instanz von 'test' der Konstruktor zweimal aufgerufen wird. Die Map ist doch eigentlich nur ein Container, der den Inhalt eigentlich nicht anfassen sollte.
Man möge mich erhellen
Gruß
Sebastian