Main menu:

Site search

Categories

avril 2024
L M M J V S D
1234567
891011121314
15161718192021
22232425262728
2930  

Archive

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, […]

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 […]

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 […]

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 […]

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. […]

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 […]