Bonjour, je serai bref:
dans le fichier .h
class Annuaire
{
public:
...// je vous épargne les autres fonctions
friend std::ostream& operator <<(std::ostream& os, const Annuaire& unAnnuaire);
private:
std::string m_ville;
...//je vous épargne les autres attributs car ils ont le même problème
};
dans le fichier .cpp
std::ostream& operator <<(std::ostream& os, const Annuaire& unAnnuaire)
{
os << unAnnuaire.m_ville;
}
erreur de compilation: m_ville is private!
Vraiment là je sais pas quoi penser.... Une fonction friend ne devrait-elle pas avoir accès aux attributs de ma classe?
mon include .h est mis et tout compile sauf ça.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
pix laposte pop
notlucky wrote:
Bonjour, je serai bref: dans le fichier .h class Annuaire { public: ...// je vous épargne les autres fonctions friend std::ostream& operator <<(std::ostream& os, const Annuaire& unAnnuaire);
private: std::string m_ville; ...//je vous épargne les autres attributs car ils ont le même problème };
dans le fichier .cpp std::ostream& operator <<(std::ostream& os, const Annuaire& unAnnuaire) { os << unAnnuaire.m_ville; }
erreur de compilation: m_ville is private!
Vraiment là je sais pas quoi penser.... Une fonction friend ne devrait-elle pas avoir accès aux attributs de ma classe? mon include .h est mis et tout compile sauf ça.
Pour + d'info voir aussi: http://en.wikipedia.org/wiki/Barton%E2%80%93Nackman_trick
-- pixor
notlucky wrote:
Bonjour, je serai bref:
dans le fichier .h
class Annuaire
{
public:
...// je vous épargne les autres fonctions
friend std::ostream& operator <<(std::ostream& os, const Annuaire&
unAnnuaire);
private:
std::string m_ville;
...//je vous épargne les autres attributs car ils ont le même problème
};
dans le fichier .cpp
std::ostream& operator <<(std::ostream& os, const Annuaire& unAnnuaire)
{
os << unAnnuaire.m_ville;
}
erreur de compilation: m_ville is private!
Vraiment là je sais pas quoi penser.... Une fonction friend ne
devrait-elle pas avoir accès aux attributs de ma classe?
mon include .h est mis et tout compile sauf ça.
Bonjour, je serai bref: dans le fichier .h class Annuaire { public: ...// je vous épargne les autres fonctions friend std::ostream& operator <<(std::ostream& os, const Annuaire& unAnnuaire);
private: std::string m_ville; ...//je vous épargne les autres attributs car ils ont le même problème };
dans le fichier .cpp std::ostream& operator <<(std::ostream& os, const Annuaire& unAnnuaire) { os << unAnnuaire.m_ville; }
erreur de compilation: m_ville is private!
Vraiment là je sais pas quoi penser.... Une fonction friend ne devrait-elle pas avoir accès aux attributs de ma classe? mon include .h est mis et tout compile sauf ça.