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:
le code compile et le prog fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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: ... };
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).
Je voudrais savoir si mon code est correcte et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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: ... };
qu'en est-il réellement de l'accessibilité.
Est ce que ça dépend juste du compilateur ?
Merci d'avance
Partager