Articles of c ++ faq

Comment est-ce que je devrais écrire les opérateurs et les opérateurs de suppression conformes à la norme ISO C ++ Standard?

Comment est-ce que je devrais écrire les opérateurs et delete opérateurs de delete conformes à la norme ISO C ++? Cela fait suite à la surcharge de nouveau et à la suppression dans la FAQ C ++ immensément éclairante, à la surcharge d’opérateur et à son suivi. Pourquoi remplacer les opérateurs new et delete par […]

gcc / g ++: «Pas de tel fichier ou répertoire»

g++ me donne des erreurs de la forme: foo.cc::: fatal error: : No such file or directory compilation terminated. Il en va de même lors de la compilation de programmes C avec gcc . Pourquoi donc? Remarque: cette question a déjà été posée à plusieurs resockets, mais à chaque fois, elle était spécifique à la […]

Pourquoi remplacer les opérateurs new et delete par défaut?

Pourquoi faut -il remplacer l’opérateur par défaut new et delete par un new et delete opérateurs personnalisés? Ceci est dans la suite de la surcharge de nouveau et de supprimer dans la FAQ C ++ immensément éclairante: Surcharge de l’opérateur. Une entrée de suivi de cette FAQ est: Comment est-ce que je devrais écrire les […]

Pourquoi est-ce que je n’inclus pas les gardes empêchant l’inclusion récursive et les définitions multiples de symbole?

Deux questions courantes sur les gardes incluent : PREMIÈRE QUESTION: Pourquoi les gardes ne protègent-ils pas mes fichiers d’en-tête contre l’inclusion mutuelle et récursive ? Je continue à recevoir des erreurs sur les symboles non existants qui sont évidemment là ou même des erreurs de syntaxe plus étranges chaque fois que j’écris quelque chose comme […]

Passer des pointeurs partagés en arguments

Si je déclare un object enveloppé dans un pointeur partagé: std::shared_ptr myClassObject(new myClass()); alors je voulais le passer en argument à une méthode: DoSomething(myClassObject); //the called method void DoSomething(std::shared_ptr arg1) { arg1->someField = 4; } Est-ce que ce qui précède ne fait qu’incrémenter le compte de référence de shared_pt et que tout est cool? Ou […]

Meilleures pratiques pour les opérations de décalage circulaire (rotation) en C ++

Les opérateurs de décalage gauche et droit (<>) sont déjà disponibles en C ++. Cependant, je ne pouvais pas savoir comment je pouvais effectuer un décalage circulaire ou effectuer des rotations. Comment effectuer des opérations telles que “Rotation à gauche” et “Rotation à droite”? Tourner à droite deux fois ici Initial –> 1000 0011 0100 […]

Copier le constructeur et = la surcharge de l’opérateur en C ++: une fonction commune est-elle possible?

Depuis un constructeur de copie MyClass(const MyClass&); et an = surcharge de l’opérateur MyClass& operator = (const MyClass&); ont à peu près le même code, le même paramètre, et ne diffèrent que sur le retour, est-il possible d’avoir une fonction commune à utiliser à la fois?

Pourquoi std :: getline () ignore-t-il les entrées après une extraction formatée?

J’ai le morceau de code suivant qui invite l’utilisateur pour son nom et son état: #include #include int main() { std::ssortingng name; std::ssortingng state; if (std::cin >> name && std::getline(std::cin, state)) { std::cout << "Your name is " << name << " and you live in " << state; } } Ce que je trouve, […]

Comment sérialiser un object en C ++?

J’ai une petite hiérarchie d’objects que je dois sérialiser et transmettre via une connexion socket. Je dois à la fois sérialiser l’object, puis le désérialiser en fonction de son type. Y a-t-il un moyen facile de faire cela en C ++ (comme c’est le cas en Java)? Existe-t-il des exemples de code ou des didacticiels […]

Fonction avec le même nom mais signature différente dans la classe dérivée

J’ai une fonction avec le même nom, mais avec une signature différente dans une base et des classes dérivées. Lorsque j’essaie d’utiliser la fonction de la classe de base dans une autre classe qui hérite de la classe dérivée, je reçois une erreur. Voir le code suivant: class A { public: void foo(ssortingng s){}; }; […]