|
|
|
|
Bonjour.
Est-il possible de définir la conversion d'un type utilisateur vers un type natif comme double. par exemple, j'ai la structure suivante :
struct complex{double a,b;}
grasse aux constructeur, on peut faire : complex z=complex(a);
mais est -il possible de faire : double a=double(z); ?
Si vous savez si c'est possible ou pas. Et dans si c'est impossible, pourquoi?
Merci :-)
Salutation !
Char Snipeur
Bonjour,
complex z=complex(a); la variable 'a' est un double ou bien un complex ?? Voici un bout de programme qui permet de faire ce que t'as écris, #include <iostream>
using namespace std;
class complex{
private : double a, b;
public : complex(){a=0; b=0;}
complex(double x){a=x; b=0;}
complex(double x, double y){a=x; b=y;}
complex(const complex& c){a=c.a; b=c.b;}
~complex(){};
};
int main(){
double a=5.0;
complex x, y, z;
z = complex(); //utilisation du constructeur par défaut
y = complex(a); //utilisation du constructeur à un parametre
x = complex(z); //utilisation du constructeur de clonage
...
return 0;
}
Donc pour répondre à la question, pour pouvoir faire pareil avec un type natif alors il faudra accéder à ses constructeurs, en particulier le constructeur de clonage, En ne connaissant pas la façon dont ces types ont été implémentés (est ce que ce sont des classes ? si oui, est ce qu'ils disposent de constructeurs ? si oui, lesquels et sont ils accessibles ?) Une solution plus simple c'est de faire toi même une classe mon_type et que tu l'enrechis de tous les constructeurs que tu voudras ! La classe elle sera faite sur le même principe que la classe complexe (en plus simple) Ciao |
Bonjour.
|