En ce moment, ma mise en oeuvre renvoie la chose en valeur. Le membre m_MyObj
lui-même n'est pas const
- sa valeur change en fonction de ce que l'utilisateur sélectionne avec une zone de liste déroulante. Je ne suis pas un gourou C++, mais je veux le faire correctement. Si je colle simplement un &
devant GetChosenSourceSystem
dans les deux décl. et impl., je reçois une sorte d'erreur de compilation. Si j'en fais un mais pas un autre - une autre erreur. Si je fais return &m_MyObj;
. Je ne vais pas énumérer les erreurs ici pour l'instant, à moins qu'il y ait une forte demande pour cela. Je suppose qu'un codeur C++ expérimenté peut dire ce qui se passe ici. Je pourrais omettre la constitude ou la référence, mais je veux le rendre serré et apprendre dans le processus aussi bien. L'objet retourné devra être const, de sorte que vous ne pouvez pas le changer de l'extérieur;Syntaxe pour const accessor par référence
// In header file
MyObj GetChosenThingy() const;
// In Implementation file.
MyObj MyDlg::GetChosenThingy() const
{
return m_MyObj;
}
Vous avez raison ... + 1 – codaddict
Une autre chose à garder à l'esprit. Si, comme je le suppose, m_MyObj est un membre de MyDlg, assurez-vous que la référence n'est pas conservée plus longtemps que l'objet qui l'a renvoyé. Si vous essayez d'accéder à un membre d'un objet qui a été supprimé, rien de bon ne peut arriver. – KeithB
Merci, je le ferai. –