Réinitialisation d'un membre donnée d'une classe
Résolu/Fermé
pasletot
Messages postés
3
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
11 juillet 2017
-
Modifié le 7 juil. 2017 à 10:02
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 11 juil. 2017 à 20:30
mamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 11 juil. 2017 à 20:30
A voir également:
- Réinitialisation d'un membre donnée d'une classe
- Reinitialisation pc - Guide
- Membre indisponible vinted - Guide
- Comment réinitialiser un ordinateur verrouillé - Guide
- Réinitialisation chromecast - Guide
- Pour participer à un jeu, josé doit donner un nom de code à chacun des membres de son équipe. il veut utiliser le code binaire. il essaie avec seulement 3 bits. mais cela ne suffit pas. combien de membres n'auront pas de code ? ✓ - Forum Powerpoint
4 réponses
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
Modifié le 7 juil. 2017 à 10:14
Modifié le 7 juil. 2017 à 10:14
Bonjour,
Tes méthodes
Ce qui donne :
Bonne chance
Tes méthodes
fooet
barretournent une recopie du
m_xcorrespondant. Il faudrait dans ton cas utiliser des références ou des pointeurs.
#include <iostream> struct A { int & m_x; A(int x):m_x(x){} inline const int & get_x() const { return m_x; } inline int & get_x() { return m_x; } }; struct B { int & m_x; B(int x):m_x(x){} inline const int & get_x() const { return m_x; } inline int & get_x() { return m_x; } }; int main() { int x = 7; A a(x); B b(x); int & y = a.get_x(); y = 8; std::cout << "a.get_x() = " << a.get_x() << std::endl << "b.get_x() = " << b.get_x() << std::endl; int & z = b.get_x(); z = 9; std::cout << "a.get_x() = " << a.get_x() << std::endl << "b.get_x() = " << b.get_x() << std::endl; return 0; }
Ce qui donne :
a.get_x() = 8
b.get_x() = 8
a.get_x() = 9
b.get_x() = 9
Bonne chance
pasletot
Messages postés
3
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
11 juillet 2017
10 juil. 2017 à 09:42
10 juil. 2017 à 09:42
Bonjour
J’ai obtenu confirmation d’un intervenant plus enclin à répondre aux demandes d’aide qu’ à ânonner des préceptes et à postuler que celui qui demande aide n’y comprend rien. Merci à lui.
Je réédite mon exemple en partiel et adapté pour ceux qui prendraient connaissance du sujet :
class A
{
A :: A(int x) : m_x(x) { }
int A::foo(){ return m_x; }
private :
int m_x ;
} ;
et class B
{
B::B() : m_a(99)
int B::bar(){ return m_a.foo();}
private :
A m_a ;
} ;
Main
{
A a(22);
B b;
a.foo();
b.bar();
Résultats console:
Appel A a;
Constructeur de A.
Appel B b;
Constructeur de A // là c’est clair
Constructeur de B
Appel a.foo() ;
-----------------------
Résultats a.foo() = 22 et b.bar() = 99
Je laisse au lecteur éventuel le soin d’en tirer ses propres conclusions.
Pour ma part je retiens l’appel d’emblée du constructeur de « A » par « B », et dans les conditions énoncées, que les retours d’ accès à un même membre donnée peuvent être différents de la valeur effective de ce membre.
Merci encore, pour moi ce sujet est clos, je retourne à mon étude laborieuse personnelle, sans prétention mais pas sans intérêt..
J’ai obtenu confirmation d’un intervenant plus enclin à répondre aux demandes d’aide qu’ à ânonner des préceptes et à postuler que celui qui demande aide n’y comprend rien. Merci à lui.
Je réédite mon exemple en partiel et adapté pour ceux qui prendraient connaissance du sujet :
class A
{
A :: A(int x) : m_x(x) { }
int A::foo(){ return m_x; }
private :
int m_x ;
} ;
et class B
{
B::B() : m_a(99)
int B::bar(){ return m_a.foo();}
private :
A m_a ;
} ;
Main
{
A a(22);
B b;
a.foo();
b.bar();
Résultats console:
Appel A a;
Constructeur de A.
Appel B b;
Constructeur de A // là c’est clair
Constructeur de B
Appel a.foo() ;
-----------------------
Résultats a.foo() = 22 et b.bar() = 99
Je laisse au lecteur éventuel le soin d’en tirer ses propres conclusions.
Pour ma part je retiens l’appel d’emblée du constructeur de « A » par « B », et dans les conditions énoncées, que les retours d’ accès à un même membre donnée peuvent être différents de la valeur effective de ce membre.
Merci encore, pour moi ce sujet est clos, je retourne à mon étude laborieuse personnelle, sans prétention mais pas sans intérêt..
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
11 juil. 2017 à 09:50
11 juil. 2017 à 09:50
Disons que la réponse qu'il t'a proposée est sensiblement différente, personnellement je n'avais pas compris la questions comme ça.
- Dans la question de départ je pensé que A et B devaient référencer un même m_x. N'ayant pas la déclaration de la classe B dans ton message initial c'était la manière dont j'avais compris ta question, même si le fait que B stocke un membre m_a aurait dû me mettre la puce à l'oreille.
- Dans la réponse de ton intervenant, tu stockes m_x dans A, et tu imbriques un A dans un B.
Merci en tout cas pour ton retour.
- Dans la question de départ je pensé que A et B devaient référencer un même m_x. N'ayant pas la déclaration de la classe B dans ton message initial c'était la manière dont j'avais compris ta question, même si le fait que B stocke un membre m_a aurait dû me mettre la puce à l'oreille.
- Dans la réponse de ton intervenant, tu stockes m_x dans A, et tu imbriques un A dans un B.
Merci en tout cas pour ton retour.
pasletot
Messages postés
3
Date d'inscription
lundi 3 juillet 2017
Statut
Membre
Dernière intervention
11 juillet 2017
11 juil. 2017 à 14:09
11 juil. 2017 à 14:09
Bonjour mamiemando
Pas de souci, inutile de te justifier. Je n'ai pas pour ambition de devenir programmeur. Si je me fie à ton pseudo tu devrais être en mesure d'approcher la raison qui m'incite à aborder un langage de programmation. C'est un sujet qui peut être bénéfique.
Le fait que sur un certain site, connu pour enseigner des langages de programmation, les intervenants se comportent comme des intégristes du C++, ce qui semble abolir chez eux la moindre capacité à appréhender une question posée et les inciter même à nier des résultats, n'enlève rien à la qualité sincère et instructive de ton intervention.
Ce que je cherchais c'était la confirmation de ce que je constatais. Ce n'est pas la première fois que je me heurte à l'opinion de spécialistes(?) imbus d'eux mêmes, convaincus que leur spécialisation leur donne droit de généraliser et de considérer que ceux qui ne partagent pas n'y entendent rien.
Encore merci
Pas de souci, inutile de te justifier. Je n'ai pas pour ambition de devenir programmeur. Si je me fie à ton pseudo tu devrais être en mesure d'approcher la raison qui m'incite à aborder un langage de programmation. C'est un sujet qui peut être bénéfique.
Le fait que sur un certain site, connu pour enseigner des langages de programmation, les intervenants se comportent comme des intégristes du C++, ce qui semble abolir chez eux la moindre capacité à appréhender une question posée et les inciter même à nier des résultats, n'enlève rien à la qualité sincère et instructive de ton intervention.
Ce que je cherchais c'était la confirmation de ce que je constatais. Ce n'est pas la première fois que je me heurte à l'opinion de spécialistes(?) imbus d'eux mêmes, convaincus que leur spécialisation leur donne droit de généraliser et de considérer que ceux qui ne partagent pas n'y entendent rien.
Encore merci
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
11 juil. 2017 à 20:30
11 juil. 2017 à 20:30
Ah ok ça me rassure, à un moment j'ai eu peur que tu parles de moi :-) Je me demandais ce que je pouvais avoir dit de vexant et je ne comprenais pas trop ! Les remarques désobligeantes m'affectent peu, mais c'est plutôt la crainte de blesser quelqu'un involontairement qui m'inquiète !
En tout cas j'espère que la communauté CCM te réservera un meilleur accueil. Si tu rencontres d'autres difficultés, n'hésite pas à me faire signe.
En tout cas j'espère que la communauté CCM te réservera un meilleur accueil. Si tu rencontres d'autres difficultés, n'hésite pas à me faire signe.