Suite à cette question, j'ai été amené à écrire le programme suivant:
#include <Carbon/Carbon.h>
class point
{
int x, y;
public:
point (int abs, int ord)
{
x = abs, y = ord;
}
~point()
{
}
void affiche();
};
#include "test.h"
#include <iostream>
using namespace std;
void point:: affiche()
{
cout << "x = " << x << " y = " << y << "\n";
}
#include <iostream>
#include "test.h"
int main (int argc, char * const argv[])
{
point * a;
a = new point (4, 5);
a->affiche();
delete a;
a->affiche();
return 0;
}
Je pensais que l'instruction "delete a;" effaçait définitivement l'objet a. Or, il n'en est rien puisque le deuxième appel à "a->affiche()" donne le même résultat.
Quelque chose m'échappe certainement; mai QUOI ??
#include <Carbon/Carbon.h>
class point
{
int x, y;
public:
point (int abs, int ord)
{
x = abs, y = ord;
}
~point()
{
}
void affiche();
};
#include "test.h"
#include <iostream>
using namespace std;
void point:: affiche()
{
cout << "x = " << x << " y = " << y << "\n";
}
#include <iostream>
#include "test.h"
int main (int argc, char * const argv[])
{
point * a;
a = new point (4, 5);
a->affiche();
delete a;
a->affiche();
return 0;
}
Je pensais que l'instruction "delete a;" effaçait définitivement l'objet a. Or, il n'en est rien puisque le deuxième appel à "a->affiche()" donne le même résultat.
Quelque chose m'échappe certainement; mai QUOI ??