Articles of initialisation

Que se passe-t-il au sumt de cette fonction

Je suis en train de regarder un exemple de fonction que je n’arrive pas à comprendre en utilisant MFC dans Visual C ++. La fonction est la suivante CMFC_OSG_MDIView::CMFC_OSG_MDIView() :mOSG(0L) { } Je comprends tout ici sauf l’extrait de code MOSG (0L). mOSG a été déclaré dans la classe MFC_OSG _MDIView comme suit: cOSG* mOSG;

Pourquoi l’initialisation par défaut C ++ n’initialise pas à zéro les membres de type non-classe

pourquoi le standard décide de ne rien faire pour les membres de type non-classe lors d’une initialisation par défaut mais effectue l’ initialisation à zéro lors de l’ initialisation de valeur ? Serait-il plus sûr que l’initialisation zéro soit toujours effectuée sur des membres de type non-CLSS?

Comment se fait-il que l’ordre de définition ne soit pas suivi lors de la définition de variables de membre statique?

Je connais le problème de l’ordre d’initialisation des variables statiques provenant de différentes unités de traduction. Cependant, mon problème est dans une unité de traduction et, en fait, dans une structure: template struct SlidingTile { using AllActions = std::array; using AllMDDeltas = std::array; int mdDelta(int i) const { return mdDeltas_[i]; } static AllActions computeAllActions() { […]

Eviter les avertissements de troncature de mon compilateur C ++ lors de l’initialisation des valeurs signées

Je voudrais initialiser un short – short sur une valeur hexadécimale, mais mon compilateur me donne des avertissements de troncature. Clairement, je pense que j’essaie de définir le short – short sur une valeur positive. short my_value = 0xF00D; // Comstackr sees “my_value = 61453” Comment voudriez-vous éviter cet avertissement? Je pourrais simplement utiliser une […]

Un meilleur moyen d’initialiser un membre du tableau statique d’une classe en C ++ (cependant, ce serait préférable)

J’ai un tableau statique de pointeurs vers des fonctions en tant que membre d’une classe. J’ai besoin de l’initialiser, mais il s’avère que ce tableau a une longueur de 64 Ko, il est donc peu pratique de l’initialiser avec un initialiseur statique tel que { x, y, z, … } car cela encombrerait le code. […]

Syntaxe d’initialisation de liste directe C ++ 11

Après avoir lu l’initialisation de liste et ses différentes variantes, j’ai décidé de tester certaines fonctionnalités dans une application openGL ES que j’écris sous Xcode et Objective-C ++, jusqu’à ce que je tombe sur quelque chose d’assez obscur. Je connais (et implémente fréquemment) l’initialisation conventionnelle d’une structure de style C en utilisant la syntaxe suivante […]

Initialisation de valeur d’object de classe sans constructeur par défaut

J’essaie de comprendre le comportement exact de l’initialisation de la valeur par T() ou T{} pour un type de classe T en C ++ 11. Ce qui me trouble, ce sont ces deux extraits tirés de http://fr.cppreference.com : Initialisation de la valeur: Les effets de l’initialisation de la valeur sont: […] 1) si T est […]

Erreur de fonction d’initialiseur de carte statique

J’ai l’erreur de base suivante: 1> c: \ programmes \ microsoft visual studio 10.0 \ vc \ include \ utility (163): erreur C2436: ‘second’: fonction membre ou classe nestede dans la liste d’initialisation du constructeur En plus de nombreuses sous-erreurs, je ne sais absolument pas où regarder ni ce qui ne va pas. (Je sais […]

Comment créer une classe de modèle Lazy C ++ gérant des types sans constructeur par défaut?

Supprimer cette question en faveur de ce qui suit: une réponse à laquelle gère maintenant les classes sans constructeur par défaut: Comment résumer l’initialisation paresseuse en C ++? En un mot, le code utilise le placement nouveau / supprimer. Voir http://en.wikipedia.org/wiki/Placement_syntax pour plus de détails …

std :: initialisation de la queue avec NULL

Est-il possible d’initialiser un std::queue C ++ avec une valeur NULL comme d’autres variables? Comme ça: HANDLE variable = NULL; class Test { } c’est à dire std::queue testQueue = NULL; ou testQueue.empty(); ou quelque chose comme ça?