Cette section explique comment modéliser les objets C++ dans le modèle orienté objet de PowerAMC.
L'attribut étendu UseNamespace permet de générer un classificateur au sein d'une déclaration d'espace de noms. Vous devez définir la valeur True pour cet l'attribut étendu.
Le problèmes des associations bidirectionnelles est traité par l'utilisation de déclarations anticipées aux lieux de includes.
Considérons une association bidirectionnelle entre ClassA et ClassB.
Le code généré dans A.h serait le suivant :
#if !defined(__A_h)
#define __A_h
class B;  // forward declaration of class B
class A
{
public:
  B* b;
protected:
private:
};
#endif
            Le code généré dans B.h serait le suivant :
#if !defined(__B_h)
#define __B_h
class A;  // forward declaration of class A
class B
{
public:
  A* a;
protected:
private:
};
#endif
            Cette approche ne fonctionne pas si l'une des classes est une classe interne car il n'est pas possible d'utiliser une déclaration anticipée des classes internes dans C++.
Si cette situation se produit, un message d'avertissement s'affiche lors de la génération, et le code correspondant est mis en commentaire.