Configuration de GoogleTest avec Visual Studio 2015 : Premier projet

Présentation de GoogleTest GoogleTest (souvent abrégé gtest) est un framework de tests unitaires C++ open source et multiplateforme (Linux, macOS, Windows, Cygwin, Windows CE, Symbian) développé par Google. Il permet d'écrire des tests en C++ sur différentes plateformes en fournissant des assertions variées : vérifications fatales ou non, te ...

Publié le 20 juin à 00h35

Programmation Orientée Objet en C++ : Héritage, Composition et Classes Génériques

Expérience 1 : (Expérience de vérification, à pratiquer personnellement, non à inclure dans le document de blog.) Expérience 2 : Code : 1 #include <iostream> 2 #include <vector> 3 #include <string> 4 #include <algorithm> 5 #include <numeric> 6 #include <iomanip> 7 8 using std::vector; 9 usi ...

Publié le 19 juin à 06h41

Analyse approfondie de Jsxer : conception et principes d'un décompilateur de fichiers binaires ExtendScript

Présentation technique et contexte Jsxer est un décompilateur haute performance conçu pour le format binaire JSXBIN utilisé par Adobe ExtendScript. Son objectif principal est de convertir les fichiers .jsxbin, généralement chiffrés, en code JavaScript lisible. Développé principalement en C++, ce projet offre des liaisons Python et une bibliothè ...

Publié le 18 juin à 23h57

Trouver le Troisième Nombre Maximum dans un Tableau

Le problème consiste à identifier le troisième nombre distinct le plus grand au sein d'un tableau d'entiers non vide. Si un tel nombre n'existe pas (c'est-à-dire s'il y a moins de trois nombres distincts dans le tableau), la fonction doit alors retourner le nombre le plus grand du tableau. Exemples Exemple 1 : Entrée : [3, 2, 1] Sortie : 1 Exp ...

Publié le 18 juin à 20h42

Maîtrise de la Surcharge des Opérateurs en C++

Introduction à la surcharge d'opérateurs La surcharge d'opérateurs en C++ permet de redéfinir le comportement des opérateurs standards afin qu'ils puissent interagir avec des types de données définis par l'utilisateur. Cette fonctionnalité améliore considérablement la lisibilité du code en permettant d'utiliser une syntaxe mathématique ou logiq ...

Publié le 18 juin à 01h49

Contrôles de mise en page Qt Widgets

Le système de mise en page de Qt Widgets constitue l'un de ses principaux concepts de conception — fondamentalement, on peut le comprendre ainsi : Qt encourage fortement l'utilisation de "gestionnaires de mise en page (Layout Manager)" plutôt que de coder manuellement les coordonnées. I. Quels sont les contrôles de mise en page dispon ...

Publié le 18 juin à 01h22

Algorithmes LCA : Entraînement avec des problèmes introductifs

L'algorithme du plus ancêtre commun (LCA) est une technique fondamentale pour résoudre des problèmes de distance ou de relations dans des arbres. Cet article présente plusieurs problèmes d'entraînement pour maîtriser le LCA, avec des explications et des implémentations en C++. Problème 1 : Distance entre maisons Lien : HDU 2586 Description : Un ...

Publié le 17 juin à 17h54

Les Constructeurs, Membres Statiques et Relations d'Amitié en C++

Les Constructeurs Lors de l'instanciation d'un objet, le compilateur invoque un constructeur pour assigner des valeurs initiales aux membres de l'objet. Toutefois, ce processus relève de l'affectatino plutôt que de l'initialisation stricte, car l'initialisation ne doit survenir qu'une seule fois, tandis que le corps du constructeur permet plusi ...

Publié le 17 juin à 04h25

Performances des tables de hachage en C++ : gp_hash_table, cc_hash_table et unordered_map

L'analyse des performances des différentes implémentations de tables de hachage en C++ révèle des comportements surprenants selon la distribution des clés. L'exemple suivant illustre ce phénomène en utilisant des clés combinées (paires d'entiers) compressées dans un seul long long. #include <iostream> #include <algorithm> #include & ...

Publié le 16 juin à 20h37

Programmation réseau C/C++ : Création d'une application de discussion en temps réel

Introduction à la programmation réseau avec sockets Après avoir appris les bases de la programmation socket, j'ai souhaité créer une application de discussion simple fonctionnant sous Windows. Cette implémentation utilise le mécanisme d'I/O multiplexing, notamment la fonction select() pour surveiller l'état des sockets. Bien que cette technique ...

Publié le 16 juin à 18h51