On rappelle qu'une resource agrégée hétérogène, est une entité sans éléments, mais avec des composants, tous instances de classe différentes à des degrés de profondeur qui peuvent être variés.
Soit par exemple les classes de ressources MySRA et MySRB ayant SingleResource comme première classe ancêtre commune. Et soit MyHAR une sous-classe de HeterogeneousAggregatedResource. On peut alors écrire de la manière suivante le constructeur de MyHAR :
class MyHAR : public HeterogeneousAggregatedResource { public: MyHAR(); }; MyHAR::MyHAR() { SetMetaClass(MY_H_A_R); // SetParentclassId(HETEROGENEOUS_AGGREGATED_RESOURCE); // pour mémoire AddInstanceToClass(); AddComponentClassId(MY_S_R_A); // la classe du premier composant AddComponentClassId(MY_S_R_B); // la classe du second composant }On peut construire une instance de MyHAR de la manière suivante :
{ //... MyHAR* pHAR = new MyHAR(); MySRA* pSRA = new MySRA(); pHAR->AddComponent(pSRA); MySRB* pSRB = new MySRB(); pHAR->AddComponent(pSRB); }