Articles of destructor

¿Por qué este destructor virtual desencadena un externo no resuelto?

Considera lo siguiente: En Xh: class X { X(); virtual ~X(); }; X.cpp: #include “Xh” X::X() {} Intente comstackr esto (estoy usando un destino .dll para evitar un error en la página principal que falta, y estoy usando Visual Studio 2010): Error 1 error LNK2001: símbolo externo no resuelto “private: virtual __thiscall X :: ~ […]

Destructor de lista no puede borrar el último nodo

Aquí está mi código de prueba: #include #include using namespace std; class List { private: class Node{ public: int data; Node* next; public: virtual ~Node() { if (next != NULL) { cout << "Node is out: " << data < data = data; if (head == NULL) { head = temp; } else { Node* […]

¿Alcance (falla) en C ++ 11?

Escribí una solución muy simple, sin embargo, alguien se rió y encontró una falla como se muestra aquí http://ideone.com/IcWMEf #include #include #include #include using namespace std; // Wrong scope(failure) class FailBlockT { typedef function T; public: T t; FailBlockT(T t) { this->t=t; } ~FailBlockT() { if (std::uncaught_exception()) { t(); } } }; struct Test { […]

Herencia jerárquica: secuencia de ejecución de constructor y destructor

Aquí http://www.parashift.com/c++-faq-lite/multiple-inheritance.html sección [25.14] dice Los primeros constructores que se ejecutan son las clases base virtuales en cualquier lugar de la jerarquía. Intenté verificarlo usando el siguiente progtwig: A (pure virtual) | B | C (virtual)/ \ (virtual) ED \ / F | G (pure virtual) | H Cada clase tiene un c’tor y un […]

Si la clase A en unique_ptr es su propio destructor, ¿es necesario declarar un borrado para garantizar que el puntero único use ese destructor? El ejemplo en el que estoy pensando es que A tiene un miembro mx de tipo user_matrix (un nombre que acabo de inventar) que necesita llamar a una función free(…) para […]

Eliminación del puntero a tipo incompleto ‘Punto’; no se llama destructor

Tengo 2 archivos: Point.h : class Point { int x; int y; char* name; public: Point() { name = new char[5]; } ~Point() { delete[] name; } }; y: Line.h : class Point; class Line { Point* p; public: Line() { p = new Point[2]; …. … } ~Line() { delete[] p; } }; pero […]

Destructor de clase con matriz de punteros C ++

Si tengo una clase con un conjunto de punteros a otra clase de vehículo : class List { public: //stuff goes here private: Vehicle ** vehicles; } Si ahora escribo el destructor de la List clases, hago iteración manual sobre la matriz (sé cuántos elementos hay en la matriz) y delete cada puntero a un […]

Destructores C ++ con vectores, punteros,

Por lo que sé, debería destruir en destructores todo lo que creé con secuencias de archivos new y cerradas y otras transmisiones. Sin embargo, tengo algunas dudas sobre otros objetos en C ++: std::vector y std::string s: ¿Se destruyen automáticamente? Si tengo algo como std::vector De punteros a clases. ¿Qué pasa cuando se llama el […]

Externo sin resolver en archivos .obj relacionados con los destructores de clase de biblioteca FreeType T :: ~ T

Después de haber resuelto de una manera más o menos buena este problema: ¿Cómo actualizar un proyecto Borland 6 C ++ de incluir indy.bpi a indy60.bpi? … Ahora me encuentro con otra dificultad: ahora tengo destructores “externos no resueltos” en archivos .obj: Ya he visto este error antes: parece ser una cuestión de destructores virtuales […]

¿Hay alguna consecuencia inesperada de llamar a un destructor desde el operador de asignación?

Por ejemplo: class Foo : public Bar { ~Foo() { // Do some complicated stuff } Foo &operator=(const Foo &rhs) { if (&rhs != this) { ~Foo(); // Is this safe? // Do more stuff } } } ¿Hay alguna consecuencia inesperada de llamar explícitamente al destructor con respecto a la herencia y otras cosas […]