двойной вызов деструктора в std list
От: man_555  
Дата: 02.10.06 06:40
Оценка: :)
class node {
private:
    int id;
public:
    node(const int _id) : id(_id) {
        std::cout << "Node " << id << " constructed\n";
    };
    ~node() {
        std::cout << "Node " << id << " DESTROYED\n";
    };
};

int main()
{
    std::list<node> l;
    l.push_back(node(1) );
    l.push_back(node(2) );
    l.erase(l.begin() );

    return 0;
}



Результат:

Node 1 constructed
Node 1 DESTROYED
Node 2 constructed
Node 2 DESTROYED
Node 1 DESTROYED

почему деструктор node 1 вызывается 2 раза?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.