(netbeans) exercice théorique sur les conversions
bonjour,
je voudrais tester les conversions de type définies par l'utilisateur.
mais j'obtiens une erreur qui est du chinois pour moi.
explication: la fonction f attend un complexe, mais c'est un double qui lui est passé. il y a donc appel du constructeur à 1 argument (avec le deuxième par défaut), puis du constructeur de recopie (pour l'argument complexe passé en paramètre).
voici le programme (court):
complexe.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #ifndef _COMPLEXE_H
#define _COMPLEXE_H
class complexe {
private:
double x,y;
public:
complexe(double r=0,double i=0);
complexe( complexe& orig);
friend void fct (complexe i);
}; |
complexe.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| #include "complexe.h"
complexe::complexe(double r=0, double i=0) {
x=r;
y=i;
};
complexe::complexe(complexe& orig) {
x=orig.x;
y=orig.y;
}; |
main.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <stdlib.h>
#include <iostream>
#include "complexe.h"
using namespace std;
int main(int argc, char** argv) {
void fct (complexe);
fct(2.8);
return (EXIT_SUCCESS);
}
void fct (complexe i){
cout << "exécution de fct avec " << i.x << i.y;
} |
voici l'erreur:
Citation:
complexe.cpp:10: error: default argument given for parameter 1 of `complexe::complexe(double, double)'
complexe.h:16: error: after previous specification in `complexe::complexe(double, double)'
complexe.cpp:10: error: default argument given for parameter 2 of `complexe::complexe(double, double)'
complexe.h:16: error: after previous specification in `complexe::complexe(double, double)'
olivier.