Articles of c ++ c ++ faq

Expliquer CINA SFINAE à un programmeur non-C ++

Qu’est-ce que SFINAE en C ++? Pouvez-vous s’il vous plaît expliquer en mots compréhensibles pour un programmeur qui n’est pas versé dans C ++? En outre, à quel concept correspond un langage comme Python SFINAE?

Quels idiomes C ++ les programmeurs C ++ doivent-ils utiliser?

Quels idiomes C ++ les programmeurs C ++ doivent-ils connaître? Par idiomes C ++, je veux dire des modèles de conception ou des façons de faire certaines choses qui ne sont applicables que pour C ++ ou plus, applicables pour C ++ que la plupart des autres langages. Pourquoi utiliser les idiomes, et que font […]

Destruction d’objects en C ++

Quand exactement les objects sont-ils détruits en C ++, et qu’est-ce que cela signifie? Dois-je les détruire manuellement, car il n’y a pas de ramasse-miettes? Comment les exceptions entrent-elles en jeu? (Note: Ceci est censé être une entrée dans la FAQ C ++ de Stack Overflow . Si vous voulez critiquer l’idée de fournir une […]

Pourquoi dois-je accéder aux membres de la classe de base du modèle via le pointeur this?

Si les classes ci-dessous n’étaient pas des modèles, je pourrais simplement avoir x dans la classe derived . Cependant, avec le code ci-dessous, je dois utiliser this->x . Pourquoi? template class base { protected: int x; }; template class derived : public base { public: int f() { return this->x; } }; int main() { […]

Quel est le modèle de modèle curieusement récurrent (CRTP)?

Sans référence à un livre, quelqu’un peut-il fournir une bonne explication du CRTP avec un exemple de code?

Que signifient les expressions suivantes en C ++: initialisation zéro, par défaut et valeur?

Que signifient les phrases suivantes en C ++: initialisation zéro, initialisation par défaut et initialisation de valeur Que devrait savoir un développeur C ++ à leur sujet?

Quel est l’opérateur en C ++?

Pendant que j’essayais d’apprendre les opérateurs C ++ , je suis tombé sur un opérateur de comparaison étrange sur cppreference.com , * dans un tableau qui ressemblait à ceci: “Eh bien, si ce sont des opérateurs communs en C ++, je ferais mieux de les apprendre”, pensais-je. Mais toutes mes tentatives pour élucider ce mystère […]

Qu’est-ce qu’une optimisation de la copie et de la valeur de retour?

Qu’est-ce que la copie élision? Qu’est-ce que l’optimisation de la valeur de retour (nommée)? Qu’est-ce qu’ils impliquent? Dans quelles situations peuvent-ils se produire? Quelles sont les limitations? Si vous avez été référencé à cette question, vous recherchez probablement l’introduction . Pour un aperçu technique, voir la référence standard . Voir les cas courants ici .

Quelle est cette syntaxe étrange membre du côlon (“:”) dans le constructeur?

Récemment, j’ai vu un exemple comme celui-ci: #include class Foo { public: int bar; Foo(int num): bar(num) {}; }; int main(void) { std::cout << Foo(42).bar << std::endl; return 0; } Qu’est-ce que c’est étrange : bar(num) signifie? Cela semble en quelque sorte initialiser la variable membre mais je n’ai jamais vu cette syntaxe auparavant. Cela […]

Est-ce que la pratique de retourner une variable de référence C ++ est mal?

C’est un peu subjectif je pense; Je ne suis pas sûr si l’avis sera unanime (j’ai vu beaucoup d’extraits de code où les références sont renvoyées). Selon un commentaire sur cette question que je viens de poser, en ce qui concerne l’initialisation des références , renvoyer une référence peut être mauvais car, si je comprends […]