{ public: bool operator==(const Point &other)const { // code ici pour tester si ils sont égaux ou pas } };
Voire même :
classe Point { // ... // éventuellement, si tu veux comparer les membres privés friend bool operator == (const Point&, const Point&); };
bool operator == (const Point& p1, const Point& p2) { // code ici pour tester si ils sont égaus ou pas }
Histoire d'avoir les même possibilités de conversion pour les deux arguments, à la résolution de surcharge.
Gourgou
Benoit Dejean
Le Thu, 16 Oct 2003 13:05:45 +0200, Gourgouilloult a écrit :
Voire même :
classe Point { // ... // éventuellement, si tu veux comparer les membres privés friend bool operator == (const Point&, const Point&); };
bool operator == (const Point& p1, const Point& p2) { // code ici pour tester si ils sont égaus ou pas }
Histoire d'avoir les même possibilités de conversion pour les deux arguments, à la résolution de surcharge.
voir même pas friend du tout. je n'ai jamais aimé que == puisse faire la comparaison alors que moi je ne le suis pas. 2 objets, un chapeau magique, et hop égaux ou pas. je pense qu'il faut utiliser friend avec parcimonie
Le Thu, 16 Oct 2003 13:05:45 +0200, Gourgouilloult a écrit :
Voire même :
classe Point
{
// ...
// éventuellement, si tu veux comparer les membres privés friend
bool operator == (const Point&, const Point&);
};
bool operator == (const Point& p1, const Point& p2) {
// code ici pour tester si ils sont égaus ou pas
}
Histoire d'avoir les même possibilités de conversion pour les deux
arguments, à la résolution de surcharge.
voir même pas friend du tout. je n'ai jamais aimé que == puisse faire la
comparaison alors que moi je ne le suis pas. 2 objets, un chapeau magique,
et hop égaux ou pas. je pense qu'il faut utiliser friend avec parcimonie
Le Thu, 16 Oct 2003 13:05:45 +0200, Gourgouilloult a écrit :
Voire même :
classe Point { // ... // éventuellement, si tu veux comparer les membres privés friend bool operator == (const Point&, const Point&); };
bool operator == (const Point& p1, const Point& p2) { // code ici pour tester si ils sont égaus ou pas }
Histoire d'avoir les même possibilités de conversion pour les deux arguments, à la résolution de surcharge.
voir même pas friend du tout. je n'ai jamais aimé que == puisse faire la comparaison alors que moi je ne le suis pas. 2 objets, un chapeau magique, et hop égaux ou pas. je pense qu'il faut utiliser friend avec parcimonie
Christophe Lephay
Benoit Dejean wrote:
classe Point { // ... // éventuellement, si tu veux comparer les membres privés friend bool operator == (const Point&, const Point&); };
bool operator == (const Point& p1, const Point& p2) { // code ici pour tester si ils sont égaus ou pas }
Histoire d'avoir les même possibilités de conversion pour les deux arguments, à la résolution de surcharge.
voir même pas friend du tout. je n'ai jamais aimé que == puisse faire la comparaison alors que moi je ne le suis pas.
Justement, l'idée de friend est que la fonction puisse le faire sans pour autant te permettre d'accéder aux données privées (ou protected).
2 objets, un chapeau magique, et hop égaux ou pas. je pense qu'il faut utiliser friend avec parcimonie
En d'autres termes, il faut l'utiliser quand on en a besoin, ni plus, ni moins. En l'occurence, friend a quasiment été créé pour ce genre de choses avec les opérateurs (pour les flux, il me semble)...
Chris
Benoit Dejean wrote:
classe Point
{
// ...
// éventuellement, si tu veux comparer les membres privés friend
bool operator == (const Point&, const Point&);
};
bool operator == (const Point& p1, const Point& p2) {
// code ici pour tester si ils sont égaus ou pas
}
Histoire d'avoir les même possibilités de conversion pour les deux
arguments, à la résolution de surcharge.
voir même pas friend du tout. je n'ai jamais aimé que == puisse faire
la comparaison alors que moi je ne le suis pas.
Justement, l'idée de friend est que la fonction puisse le faire sans pour
autant te permettre d'accéder aux données privées (ou protected).
2 objets, un chapeau
magique, et hop égaux ou pas. je pense qu'il faut utiliser friend
avec parcimonie
En d'autres termes, il faut l'utiliser quand on en a besoin, ni plus, ni
moins. En l'occurence, friend a quasiment été créé pour ce genre de choses
avec les opérateurs (pour les flux, il me semble)...
classe Point { // ... // éventuellement, si tu veux comparer les membres privés friend bool operator == (const Point&, const Point&); };
bool operator == (const Point& p1, const Point& p2) { // code ici pour tester si ils sont égaus ou pas }
Histoire d'avoir les même possibilités de conversion pour les deux arguments, à la résolution de surcharge.
voir même pas friend du tout. je n'ai jamais aimé que == puisse faire la comparaison alors que moi je ne le suis pas.
Justement, l'idée de friend est que la fonction puisse le faire sans pour autant te permettre d'accéder aux données privées (ou protected).
2 objets, un chapeau magique, et hop égaux ou pas. je pense qu'il faut utiliser friend avec parcimonie
En d'autres termes, il faut l'utiliser quand on en a besoin, ni plus, ni moins. En l'occurence, friend a quasiment été créé pour ce genre de choses avec les opérateurs (pour les flux, il me semble)...
Chris
Gourgouilloult
Benoit Dejean wrote:
Voire même :
classe Point { // ... // éventuellement, si tu veux comparer les membres privés friend bool operator == (const Point&, const Point&); };
(Euh, juste au passage, c'est normal que dans ta réponse, friend se retrouve sur la ligne précédente ? Si c'est fait exprés, en fait, il faut enlever toute la déclaration.)
voir même pas friend du tout. je n'ai jamais aimé que == puisse faire la comparaison alors que moi je ne le suis pas. 2 objets, un chapeau magique, et hop égaux ou pas. je pense qu'il faut utiliser friend avec parcimonie
J'ai bien dit «éventuellement», pas que je le conseillais. Parmi les choses que je n'aime pas écrire : des listes infinissables de déclarations de friend, pour toute une floppée d'opérateurs. Il y a de nombreuses raisons qui font que je n'ai jamais eu à lire de telles choses et que j'ai arrêté d'en écrire depuis longtemps. Au point même qu'à une certaine époque, j'ai fini par avoir du mal à comprendre friend ;)
Gourgou
Benoit Dejean wrote:
Voire même :
classe Point
{
// ...
// éventuellement, si tu veux comparer les membres privés friend
bool operator == (const Point&, const Point&);
};
(Euh, juste au passage, c'est normal que dans ta réponse, friend se
retrouve sur la ligne précédente ? Si c'est fait exprés, en fait, il
faut enlever toute la déclaration.)
voir même pas friend du tout. je n'ai jamais aimé que == puisse faire la
comparaison alors que moi je ne le suis pas. 2 objets, un chapeau magique,
et hop égaux ou pas. je pense qu'il faut utiliser friend avec parcimonie
J'ai bien dit «éventuellement», pas que je le conseillais. Parmi les
choses que je n'aime pas écrire : des listes infinissables de
déclarations de friend, pour toute une floppée d'opérateurs. Il y a de
nombreuses raisons qui font que je n'ai jamais eu à lire de telles
choses et que j'ai arrêté d'en écrire depuis longtemps. Au point même
qu'à une certaine époque, j'ai fini par avoir du mal à comprendre friend ;)
classe Point { // ... // éventuellement, si tu veux comparer les membres privés friend bool operator == (const Point&, const Point&); };
(Euh, juste au passage, c'est normal que dans ta réponse, friend se retrouve sur la ligne précédente ? Si c'est fait exprés, en fait, il faut enlever toute la déclaration.)
voir même pas friend du tout. je n'ai jamais aimé que == puisse faire la comparaison alors que moi je ne le suis pas. 2 objets, un chapeau magique, et hop égaux ou pas. je pense qu'il faut utiliser friend avec parcimonie
J'ai bien dit «éventuellement», pas que je le conseillais. Parmi les choses que je n'aime pas écrire : des listes infinissables de déclarations de friend, pour toute une floppée d'opérateurs. Il y a de nombreuses raisons qui font que je n'ai jamais eu à lire de telles choses et que j'ai arrêté d'en écrire depuis longtemps. Au point même qu'à une certaine époque, j'ai fini par avoir du mal à comprendre friend ;)
Gourgou
Benoit Dejean
Le Thu, 16 Oct 2003 15:59:34 +0200, Christophe Lephay a écrit :
En d'autres termes, il faut l'utiliser quand on en a besoin, ni plus, ni moins. En l'occurence, friend a quasiment été créé pour ce genre de choses avec les opérateurs (pour les flux, il me semble)...
je ne pense pas au contraire
Le Thu, 16 Oct 2003 15:59:34 +0200, Christophe Lephay a écrit :
En d'autres termes, il faut l'utiliser quand on en a besoin, ni plus, ni
moins. En l'occurence, friend a quasiment été créé pour ce genre de choses
avec les opérateurs (pour les flux, il me semble)...
Le Thu, 16 Oct 2003 15:59:34 +0200, Christophe Lephay a écrit :
En d'autres termes, il faut l'utiliser quand on en a besoin, ni plus, ni moins. En l'occurence, friend a quasiment été créé pour ce genre de choses avec les opérateurs (pour les flux, il me semble)...
je ne pense pas au contraire
Christophe Lephay
Benoit Dejean wrote:
En d'autres termes, il faut l'utiliser quand on en a besoin, ni plus, ni moins. En l'occurence, friend a quasiment été créé pour ce genre de choses avec les opérateurs (pour les flux, il me semble)...
je ne pense pas au contraire
tu ne penses pas quoi ?
Quand on surcharge les opérateurs, on le fait souvent via une fonction libre friend plutôt qu'une fonction membre (pour des question de symétrie). Tu penses qu'une fonction libre friend est plus problématique qu'une fonction membre alors qu'elle est censée fournir le même service (modulo les facilités de conversions en plus) ?
Chris
Benoit Dejean wrote:
En d'autres termes, il faut l'utiliser quand on en a besoin, ni
plus, ni moins. En l'occurence, friend a quasiment été créé pour ce
genre de choses avec les opérateurs (pour les flux, il me semble)...
je ne pense pas au contraire
tu ne penses pas quoi ?
Quand on surcharge les opérateurs, on le fait souvent via une fonction libre
friend plutôt qu'une fonction membre (pour des question de symétrie). Tu
penses qu'une fonction libre friend est plus problématique qu'une fonction
membre alors qu'elle est censée fournir le même service (modulo les
facilités de conversions en plus) ?
En d'autres termes, il faut l'utiliser quand on en a besoin, ni plus, ni moins. En l'occurence, friend a quasiment été créé pour ce genre de choses avec les opérateurs (pour les flux, il me semble)...
je ne pense pas au contraire
tu ne penses pas quoi ?
Quand on surcharge les opérateurs, on le fait souvent via une fonction libre friend plutôt qu'une fonction membre (pour des question de symétrie). Tu penses qu'une fonction libre friend est plus problématique qu'une fonction membre alors qu'elle est censée fournir le même service (modulo les facilités de conversions en plus) ?