36 votes

Qu'y a-t-il sur votre feuille de route C++ ?

De temps en temps, je dois passer d'un langage à l'autre pour la majorité du code que j'écris (que ce soit pour le travail ou pour le plaisir). Je trouve que le C++ est l'un de ces langages qui nécessite beaucoup d'espace de stockage mental, donc si je fais une longue pause, j'oublie beaucoup de détails. Même des choses comme ajouter des éléments à un conteneur STL ou utiliser la fonction static le mot-clé de stockage dans divers contextes s'embrouille ("est-ce que c'est add , append , push ...oh, c'est push_back ").

Quelles sont les informations essentielles que vous aimez avoir dans votre cerveau lorsque vous écrivez du C++ ?

Edit : Je devrais dire que j'aimerais pouvoir ajouter cette page à mes favoris et l'utiliser comme aide-mémoire :)

18voto

Quand je repasse de Java à C++, j'aime revoir des éléments de Normes de codage C++ par Herb Sutter et Andrei Alexandrescu.

Scott Meyers C++ efficace Les séries sont également très utiles à cet égard.

Voici des trucs de base rapides qui fonctionnent pour moi :

  • Utilisez std::swap()
  • "Dans le doute, faites comme les ints." (Scott Meyers)
  • const * signifie des données constantes, * const signifie pointeur constant (lire la déclinaison à l'envers !).
  • Déclarer un opérateur d'affectation et un constructeur de copie dans les classes avec des données affectées dynamiquement.
  • Le C++ écrira un opérateur d'affectation et un constructeur de copie pour vous si vous ne les déclarez pas vous-même. Sauf si vous les déclarez (private, très probablement) et omettez de les définir.
  • L'opérateur=() doit retourner une référence à *this
  • Appeler Base(rhs) dans la liste init du constructeur de la copie de Derived.
  • Appelez Base::operator=(rhs); dans Derived's operator=()
  • Vérifier l'affectation à soi-même dans operator=()
  • Ne pas mettre en œuvre operator=() en appelant le constructeur de copie (Herb Sutter, Écrivez ce que vous savez, et sachez ce que vous écrivez )
  • Souvenez-vous de RAII
  • attraper les exceptions par référence

15voto

jonner Points 2353

Sur mon cheatsheet : interactions entre const et pointeurs :

int       *       p;  // pointer
int const *       p;  // pointer to const value
int       * const p;  // const pointer
int const * const p;  // const pointer to const value

Essentiellement, divisez la déclaration sur le * et si le const tombe à gauche, la valeur pointée est const, et s'il tombe à droite, le pointeur lui-même est const.

9voto

Kristopher Johnson Points 34554

Je garde un PDF de la norme C++ ouvert. Il est utile pour consulter rapidement toutes les interfaces de la bibliothèque (en particulier les interfaces de conteneurs et le matériel iostream). C'est également utile pour résoudre rapidement les disputes des collègues sur la syntaxe et la sémantique du C++.

Je n'ai pas encore trouvé comment charger le PDF dans mon cerveau.

6voto

Matt Price Points 9674

Comme je travaille en C++ tout le temps, je garde la plupart de la syntaxe dans ma tête. Pour me référer à la bibliothèque, j'utilise sgi y Josuttis' livre. Lorsque je n'ai pas fait de C++ depuis un certain temps et que j'ai vraiment besoin d'une remise à niveau, je retourne au livre suivant C++ efficace .

Lorsque j'ai besoin de répondre à une question plus approfondie, je me réfère à la norme ou au Stroustrup's livre.

Quand tout le reste échoue, google et stackoverflow sont des outils formidables.

5voto

Scott Saad Points 8894

Implémentation d'un callback vers une fonction membre C++ non statique

A chaque fois que je dois faire ça, je dois regarder celui-là. Vraiment tout ce qui traite des détails des pointeurs de fonction a toujours tendance à m'agiter le cerveau. J'ai trouvé le Tutoriels sur les pointeurs de fonction pour être une assez bonne référence.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X