Je souhaite passer un objet de classe A (appelez-le a) par référence (au sens large, soit A & ou par A *) au constructeur d'une autre classe B. ne veut pas que 'a' soit modifié à l'intérieur de B ('a' est en lecture seule et il est grand en taille, c'est pourquoi je veux le passer par référence). Je sais que deux options:Passage par les options de référence en C++
1) Pass 'a' comme
const A & a_
2) Passe 'a' comme
const A * a_
L'inconvénient de l'option 1 est que je peux passer par erreur une valeur-r. L'inconvénient de l'option 2 est que je peux passer par erreur un pointeur nul.
Mes questions sont: 1) Ai-je raison sur les inconvénients ci-dessus? 2) Y a-t-il une autre façon de passer 'a' par référence?
J'ai vu les réponses dans le lien ci-dessous. Mais je suis curieux de savoir s'il existe d'autres options que ce qui est affiché dans cette question. Are there benefits of passing by pointer over passing by reference in C++?
Comment est-il probable que vous passerez par erreur une valeur r, et comment les conséquences de cette action sera GRAVE? – emlai
Si vous avez vos soucis, et vous connaissez les problèmes, vous avez besoin d'une vérification d'erreur. Passer par référence et et essayer/attraper. Si vous le faites par un pointeur, vous allez modifier l'instance d'origine de votre objet. –
Qu'est-ce qu'une rvalue? Est-ce une égalité indéfinie? Comme une lvalue? –