Classe imbriquée et accessibilité ?
Bonjour,
Pour des besoins spécifiques j'ai mis dans mon code une classe imbriquée
qui utilise une fonction membre (privée) de la classe hôte.
voilà en gros ce que ça donne:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
class A
{
class B
{
...
a->func();
};
void func();
public:
...
}; |
le code compile et le prog fonctionne.
Mais j'ai lu sur un forum qu'en fait une classe
imbriquée utilisant une fonction ou variable membre
privée de la classe hôte n'était pas accepté par tous les compilateurs.
Apparemment les compilateurs Visual et Solaris rejettent
ce code alors que Gcc l'accepte.
Donc pour le cas où (j'utilise gcc), j'ai déclaré la fonction func() de A amie de
la classe B (ce qui oblige à déclarer la fonction au tout début de la classe A).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
class A
{
void func();
class B
{
...
friend void A::func();
a->func();
};
public:
...
}; |
Je voudrais savoir si mon code est correcte et
qu'en est-il réellement de l'accessibilité.
Est ce que ça dépend juste du compilateur ?
Merci d'avance