Bonjour,

je dois ajouter de nouvelles fonctionnalit� � un code C++.
Ce code utilise une biblioth�que externe LIB, et notamment des instances de LIB::Object.
La classe LIB::Object admet pour attribut un entier info.
Les instances de LIB::Object sont concr�tement d�clar�es en tant qu'Object via un typedef :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
typedef LIB::Object Object;
Ainsi, j'ai des bouts de code du type
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
Object instance = LIB::fonction_retournant_une_instance_de_Object();
instance->info() = 1;
La classe LIB::Object n'est pas document�e.
En particulier, il n'y a pas d'erreur de syntaxe dans la derni�re ligne : il semblerait que le pattern Iterator soit utilis� dans son implementation.

J'ai besoin de pouvoir stocker non plus un entier "info" mais 2 entiers, disons "info" et "data."


Ma premi�re id�e a �t� de remplacer le typedef par classe h�ritant publiquement de LIB::Object :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
class Object : public LIB::Object
{
private:
  int data;
};
Le souci avec cette approche est que je tombe sur un probl�me de conversion de LIB::Object vers Object � la ligne
Code : S�lectionner tout - Visualiser dans une fen�tre � part
Object instance = LIB::fonction_retournant_une_instance_de_Object();
J'aurais bien ajout� un constructeur et un op�rateur d'affectation,
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
Object(LIB::Object const &);
Object & operator=(LIB::Object const &);
mais je ne vois pas comment les impl�menter sans conna�tre l'impl�mentation de LIB::Object, en particulier ses attributs.

Est-ce possible de copier tous les attributs d'une classe m�re dans une classe fille de mani�re automatique?


En solution de contournement, je fais un h�ritage par composition qui me permet d'automatiser cette t�che mais ce n'est pas super pratique car cela engendre �norm�ment de modifications dans le code.

Merci pour votre aide.