Archive for 'C++'
C++ – Alignement des structures
Vous devez toujours garder à l’esprit cette notion d’alignement parce que la taille réelle d’une structure ou d’une classe n’est pas toujours celle que vous imaginez. Prenons l’exemple de cette structure: struct A { int i; char c; }a; Le résultat de sizeof(a) donnera 8 octets alors que seulement 5 octets sont utilisés. Le reste, […]
Posted: février 3rd, 2009 under C++.
Comments: none
C++ – le problème des variables temporaires
Imaginons une fonction retournant un std::string par valeur: std::string foo() { return std::string(); } Lors du return, le compilateur crée une variable temporaire et celle-ci existe jusqu’à ce que la fonction se termine. Cela ne pose pas de problème si vous utilisez cette variable temporaire de cette manière: std::string str = foo(); Une copie de […]
Posted: novembre 17th, 2008 under C++.
Comments: 1
C++ – Comprendre les structures
Bien souvent, on me demande d’expiquer la notation des structures telles que celle utilisées dans l’API Windows. Je sais, cela n’a rien à voir avec Linux sauf que Microsoft ayant tendance a rendre son code illisible parfois (ou disons plus compliqué pour le débutant), je vais tenter d’expliquer cette construction même si on d’éloigne un […]
Posted: septembre 19th, 2008 under C++.
Comments: 2
Utiliser ses propres journaux d’événements
Sous Linux, les journaux d’événements (log en anglais) sont centralisés. il y a un daemon syslogd qui implémente le protocole syslog et gère les différents fichiers de log du système. Ces fichiers sont très important pour résoudre des problèmes de fonctionnement ou de plantage. Ma question du jour est: est-il possible d’utiliser cette facilité pour […]
Posted: septembre 13th, 2008 under C++, python, Ubuntu.
Comments: none
C++ – Classes et fonctions amies
On utilise la notion d’ami lorsque l’on a deux classes dont l’une doit avoir accès aux données membres privées de l’autre. Cette façon de faire permet de limiter à une seule classe l’accès à des données privées et de ne pas devoir rendre celles-ci publiques ce qui les rendrait disponibles pour tout objet ou classe. […]
Posted: août 12th, 2008 under C++.
Comments: none
C++ – Comment capturer une exception
Il y a trois façons de capturer une exception: par valeur, par référence ou par pointeur. Capture par valeur Capturer une exception par valeur a deux inconvénients principaux. D’abord cela nécessite une copie de l’objet ce qui, si cet objet est de taille importante, n’est pas très efficient. Ensuite, copier un objet demande du temps […]
Posted: juin 30th, 2008 under C++.
Comments: none