d'une question similiaire ici
J'ai essayé la solution mais toujours obtenir une erreur: "Disactructeur" n'a pas été déclaré dans cette portée.
Distructeur et Vec_A sont définis dans la section privée, sous la section publique, dans la même classe. P> S'il vous plaît, pourriez-vous m'aider. P> Cordialement,
Thomas P> P>
3 Réponses :
Vous essayez de créer un vecteur du type de données «Disactructeur». Êtes-vous sûr de vous écrir de la classe / ou de la implémenter? Ce n'est peut-être qu'une variable. Vous savez que vous devez réellement mettre un type de données dedans comme Int, Bool, String. Il définit le type de données des variables spécifiques dans le vecteur. P>
Premièrement, la partie de déclaration du type de retour La classe A n'est pas complète avant son bras de fermeture. Conspétiquement, les classes imbriquées définies ne sont pas complètes avant la fermeture des accolades. La déclaration suivante est correcte one: p> dans n'importe quel autre cas que vous pourriez transmettre comme std :: vecteur
struct A :: Disamattruct code>. P> p>
Une fois que le type apparaît dans un type de retour d'une méthode publique, il fait partie de l'interface publique (si le type est déclaré pour la première fois dans la section privée ou non).
Pourquoi puis-je utiliser Auto sur un type privé?
@ idclev463035818 Bon point, je suppose que j'étais habitué au compilateur brisé qui ne pouvait pas le faire (spécialement a ms unique, c'était un désordre de non-conformité avec "Tenter" d'accéder à un constructeur non trivial. Les compilateurs de MS anciens ont considéré toutes les classes. Avec héritage ou imbriquée à être non trivial par définition et déclaration "Auto x" nécessiterait un appel qu'il ne pouvait pas faire car "type n'est pas accessible").
Je n'étais pas au courant de cela depuis longtemps et c'était un choc quand j'ai découvert cela. A dû reconsidérer mon idée de ce qui est privé et ce qui est public complètement
Je suppose que vous avez du code similaire à l'exemple suivant: Il a une erreur: p> car ou bar code> est privé dans
foo code>. Cependant, cela ne signifie pas que vous ne pouvez pas l'utiliser en dehors de
foo code>. Vous pouvez utiliser
auto code>: p>
déclinger code>: p>
DataType code> mais vous pouvez utiliser
auto code> et vous pouvez obtenir un alias pour le type. Cela fonctionne également pour un
std :: vecteur
DataType code> directement. P> p>
Merci de répondre. Ma compréhension était que les fonctions normalement publiques peuvent-elles accéder aux députés privés? Si je fais tout le datratégie, je peux utiliser A.Datretruc et n'a pas besoin d'une fonction pour l'accessoire?
Veuillez inclure un exemple de reproductible minimal . Le problème est dans le code que vous n'avez pas montré (ou plutôt dans le code que vous avez montré,
Disactructeur code> n'est en effet pas défini)
Vous devez Modifier Votre question pour nous montrer un exemple de reproductible minimal . Veuillez également inclure une pâte de copie (en tant que texte) de la sortie de construction complète et complète. Et s'il vous plaît, prenez le temps de lire Les pages d'aide , prenez la Tour , lire Comment demander à , ainsi que Cette question de contrôle .
Ici, mon exemple est venu de, et je pensais que c'est juste ce dont j'ai besoin: Stackoverflow.com/questions/45479457/...