Bonjour,
Voila, j'ai un ensemble de classe qui me permettent de stocker des objets.
Je voudrais établir une fonction de convertion de type.
Par exemple A pour des cubes et B pour des spheres, une convertion d'un cube en sphere serait de creer une sphere qui a le meme volume que le cube.
Le probleme, c'est que je ne connait pas à l'avance le type des objets.
Je voudrais pouvoir appeler :
A = convertir(B);
Si A est une sphere et B un cube
ou Si A est une sphere et B une sphere
ou Si A est un cube et B une sphere
ou Si A est un cube et B un cube
Et si B ou A est un poireau, et qu'il n'existe donc pas de conversion logique, la fonction renvoit NULL (on convertit des pointeurs)
Je pense le faire en faisant deriver tous mes objets d'une classe mere "objetConvertible".
Dans cette classe, il y aurait :
- une info de type, initialisée par le constructeur de chaque classe dérivée
- une fonction de conversion qui connait toutes les combinaisons d'objets convertibles et renvoit un pointeur ou NULL
C'est un bon début à votre avis ?
Sinon je connait pas trop boost::any et boost::any_cast, y'aurais moyen de faire un truc propre avec ça ?
Partager