Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Meilleures Pratiques de Références | Références
Pointeurs Intelligents C++
course content

Contenu du cours

Pointeurs Intelligents C++

Pointeurs Intelligents C++

1. Introduction aux Pointeurs Intelligents
2. Pointeurs Uniques
3. Pointeurs Partagés
4. Pointeurs Faibles
5. Références
6. Sujets Avancés

book
Meilleures Pratiques de Références

Conventions de nommage

Choisissez des noms significatifs pour vos références. Les noms doivent refléter le but de la variable référencée. Des noms clairs et descriptifs améliorent la lisibilité du code et facilitent la compréhension de votre code par d'autres personnes (ou par vous-même dans le futur).

cpp

main

copy
123456789101112
int main() { int counter = 42; // Poor naming choice int& r = counter; // Improved naming for better clarity int& counterRef = counter; // Now it's clear that counterRef is a reference to the counter // ... rest of the code }

Dans le code ci-dessus, counterRef est un nom significatif pour une référence, tandis que r est un choix de nom médiocre qu'il convient d'éviter.

Portée et durée de vie

Soyez attentif à la portée et à la durée de vie de vos références. En règle générale, ne retournez pas de références à des variables locales depuis des fonctions, car cela conduit à un comportement indéfini une fois que la variable sort de la portée.

cpp

main

copy
12345678910
const int& createReference() { int localVar = 10; // This is dangerous - localVar goes out of scope return localVar; } int main() { const int& result = createReference(); // Undefined behavior }

Dans le code ci-dessus, nous retournons une référence à localVar, une variable locale, depuis la fonction createReference. Cela entraînera un comportement indéfini une fois que localVar sortira de la portée.

Références dans les boucles for basées sur la plage

Utilisez des références dans les boucles for basées sur la plage pour travailler directement avec les éléments d'un conteneur, sans créer de copies inutiles.

cpp

main

copy
12345678910
#include <vector> int main() { std::vector<int> numbers = {1, 2, 3, 4, 5}; // Use references in range-based for loop for (const int& num : numbers) { // Code that works with each element directly } }

Dans le code ci-dessus, nous utilisons des références pour itérer sur un vecteur. Cela garantit que les entrées du vecteur sont accédées directement, sans aucune copie impliquée.

Pourquoi devriez-vous éviter de retourner des références à des variables locales depuis des fonctions ?

Pourquoi devriez-vous éviter de retourner des références à des variables locales depuis des fonctions ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 4
We're sorry to hear that something went wrong. What happened?
some-alt