Bonjour à tous... Voilà j'ai un petit problème. J'ai crée une classe complex dans laquelle j'ai defini quelques méthodes. Jusqu'ici rien de bien passionnant....
Cependant des que j'utilise une méthode qui prend un objet de cette même classe comme argument, l'execution appel le destructeur juste avant l'execution de la méthode...
Je vous montre un petit exemple:
++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++
complex.H:
#include<iostream>
using namespace std;
class complex
{
double real_part;
double imaginary_part;
// Friend function :
friend void module(complex a,double &mod);
public :
// Constructor
complex();
complex(double a, bool b);
complex(double a, double b);
complex (const complex &source_complex); // copy constructor
// Operator overloading
complex operator = (complex);
bool operator == (complex);
complex operator + (complex);
virtual void display();
virtual complex multiplication(const complex a);
virtual complex multiplication(double b);
// Destructor
virtual ~complex();
};
void module(const complex a,double &mod);
+++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++
des que j'appel par exemple la fonction module, le destructeur est appelé (je le sais car j'ai demandé qu'il affiche une phrase des qu'il est appelé...)
j'obtiens
+++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++
MAIN
#include <iostream>
#include "Class_complex.h"
using namespace std;
int main()
{
int exit; bool essai=false; double mod;
complex a= complex (2.0,3.0);
complex b=a.multiplication(2.);
complex c= complex(1.0,2.0);
complex d= a.multiplication (c);
b.display();
cout << endl;
d.display();
cout << endl;
complex e=complex(a);
e.display();
module(e,mod);
cout << mod << endl;
return 1;
}
J'obtiens
The complex number was destroyed
4 + i*6
-4 + i*7
2 + i*3
The complex number was destroyed <- juste avant module le destructeur
3.60555 <- appel de la function module
The complex number was destroyed
The complex number was destroyed
The complex number was destroyed
The complex number was destroyed
The complex number was destroyed
complex has exited with status 1.
Je suis un peu perdu, merci d'avance