acceder à un vecteur dans autre classe en c++ - C++ - Programmation
Marsh Posté le 24-07-2013 à 11:10:04
Bonjour !
L'attribut "m_nodes" de la classe ConnectedComponent étant déclaré "private", il n'est accessible que depuis les méthodes de la classe "ConnectedComponent" (ou les classes / fonctions amies, mais on va simplifier).
L'erreur est donc tout à fait logique.
Soit vous rendez l'attribut public (bouuuh !), soit vous rajoutez une méthode d'ajout d'un élément dans la classe ConnectedComponent (pour le premier accès); ainsi qu'une méthode d'affichage (pour le deuxième).
Par ailleurs, dans votre boucle d'affichage (celle sur j), vous bouclez sur la taille du tableau cc_tab et utilisez j pour parcourir le tableau cc_tab[i].m_nodes ... Exception à prévoir si ça ne rigole pas (ou dans le meilleur des cas, on n'affiche pas tout).
Bonne continuation !
Marsh Posté le 24-07-2013 à 11:10:46
C'est normal : m_nodes est privé. Par définition, ce qui est hors de ta classe n'a pas le droit d'accéder aux membres privés.
Je ne te recommande pas pour autant nécessairement de mettre m_nodes en public. Suivant ton problème, peut-être que donner un accesseur sera censé, peut-être qu'il sera préférable d'avoir un peu plus de contrôle depuis ton interface publique et de cacher le vecteur qui relève de l'implémentation.
Edit :
Marsh Posté le 24-07-2013 à 05:48:25
salut tout le monde !
j'ai une question sur l'héritage en c++, en fait j'ai une classe ConnectedComponent dont le code est le suivant :
et une autre classe ConnectedComponentSearch.cpp où j'utilise une méthode qui a un vector< ConnectedComponent> comme type de retour voici le code
le problème c'est q'il m'affiche une erreur au niveau d’accessibilité au vecteur m_nodes ?????
merci d'avance pour toute aide
---------------
when there is a will there is a way