dimanche 26 mai 2013

Eclipse for C/C++

Vous cherchez à bien démarrer, rapidement à développer en Langage C et C++ sur la plateforme de développement Eclipse nous allons voir ce qu'il faut faire.

https://www.eclipse.org/
Eclipse Foundation

Eclipse Download

http://www.eclipse.org/downloads/

Eclipse for C/C++ Windows 32bits 131 Mo

http://pothi.com/pothi/book/ebook-meera-ghumalia-cc-software-development-eclipse

Eclipse Juno Documentation
http://help.eclipse.org/juno/index.jsp

Double clic on :
\\eclipse-cpp-juno-SR2-win32\eclipse\eclipse.exe

Message de l'exécutable :
A Java Runtime Environment (JRE) or a Java Development Kit (JDK) must be available in order to run Eclipse

Eclipse Installation JRE

Depending on what you want to do with Eclipse. If you intend to use Eclipse for Java development, then you should install a JDK

I will work with Windows, so I install JRE.

http://wiki.eclipse.org/Eclipse/Installation#Install_a_JVM

Vérification de la machine Java Installée
http://java.com/fr/download/installed.jsp
(Version 7 Update 21).

Lancer l'exécution de eclipse.exe
choix du workspace : C:\Documents and Settings\Administrateur\workspace

Create New Project

Création d'un projet GCC Cross Compilation :
C:\Documents and Settings\Administrateur\workspace\Hello World C++ Project Cross GCC

Oups !
Description Resource Path Location Type
Symbol 'cout' could not be resolved Hello World C++ Project Cross GCC.cpp /Hello World C++ Project Cross GCC/src line 13 Semantic Error
Program "g++" not found in PATH Hello World C++ Project Cross GCC [Discovery Options] page in project properties C/C++ Problem
Symbol 'endl' could not be resolved Hello World C++ Project Cross GCC.cpp /Hello World C++ Project Cross GCC/src line 13 Semantic Error
Program "make" not found in PATH Hello World C++ Project Cross GCC C/C++ Problem
Symbol 'std' could not be resolved Hello World C++ Project Cross GCC.cpp /Hello World C++ Project Cross GCC/src line 10 Semantic Error
Program "gcc" not found in PATH Hello World C++ Project Cross GCC [Discovery Options] page in project properties C/C++ Problem

Création d'un projet Microsoft Visual C++ :
C:\Documents and Settings\Administrateur\workspace\Hello World Microsoft Visual C++

Oups !
Description Resource Path Location Type
LNK1104: cannot open file 'kernel32.lib' Hello World Microsoft Visual C++ line 0 C/C++ Problem

Oulala ça pique un peu Eclipse ...
 

vendredi 24 mai 2013

Design Patterns en C++

Vous recherchez des Design Patterns écrits en C++, nous allons voir ensemble ce que l'on peut trouver sur ce sujet.

C++ Programming/Code/Design Patterns

En Anglais sur le site wikibooks :


http://en.wikibooks.org/wiki/C%2B%2B_Programming/Code/Design_Patterns

Présentation très complète des patterns en C++, avec à chaque fois, le code en C++ : une mine d'or !

Trois grands types de Patterns

Creational Patterns
Structural Patterns
Behavioral Patterns

Design Patterns en C++

Sur le site Developpez.com

Développez.com

Prototype : Class dont le but est d'être clonée
Créer un tas de gros objets (en taille mémoire) peut créer des problèmes de performance de l'application.
Il dispose d'une méthode obligatoire : Clone()

std::auto_ptr : cette class est obsolète en C++11. La nouvelle class est unique_ptr qui supprime automatiquement l'objet qu'il pointe.

Singleton : Assurer l'existence d'une seule instance de certaines Class
exemple d'un driver de son qui ne doit être instancié qu'une fois
en C++ on utilisera le Template Class

Factory : ou fabrique en français classe dont le rôle est de créer d'autres objets.

Décorateur : permet d'étendre dynamiquement le rôle d'une classe de base

Observateur : être prévenu lors de changement d'une donnée

Stratégie : pattern permettant de changer d'algorithme utilisé de façon dynamique.

Source Making

Un site très complet sur le développement logiciel UML, Design Patterns, AnitPatterns, Refactoring :

SOURCE MAKING - Design Patterns

Des exemples graphiques amusants ... des implémentation dans les différents langages vraiment complet. Et la définition des AntiPattern.

Les évolutions du Langage C++


MSDN de Septembre 2011

New Language Features in Visual C++
http://msdn.microsoft.com/en-US/library/xey702bw(v=vs.80).aspx

But it's not the best practices, they can be founded here.

Étrange, s'agit-il d'un ajout au C++ spécifique au compilateur de Microsoft ?

To Be Continued!

STL - Librairies standards du C++

Qu'est ce qu'il y a dans les libraires standards du C++ ? Il y a un minimum à connaitre pour connaitre les fonctionnalités que l'on peut développer très rapidement simplement en utilisant les librairies standards du C++.

Wikipédia - C++ Standard Library

Containers

<array>new in C++11 fixed sized array.
<bitset>a bit array.
<deque>a double-ended queue.
<forward_list>a singly linked list.
<list>a doubly linked list.
<map>sorted associative array and multimap.
<queue>a priority queue.
<set>sorted associative containers or sets.
<stack>a stack.
<unordered_map>hash tables.
<unordered_set>
<vector>a dynamic array.

General

<algorithm>
<chrono>time elements, duration, time_point, and clocks.
<functional>Provides several function objects, designed for use with the standard algorithms.
<iterator>Provides classes and templates for working with iterators.
<memory>Provides facilities for memory management in C++, including the class template std::unique_ptr.
<stdexcept>Contains standard exception classes such as std::logic_error and std::runtime_error, both derived from std::exception.
<tuple>a tuple.
<utility>working with object pairs (two-member tuples), and the namespace std::rel_ops, for easier operator overloading.
Localization
<locale>Defines classes and declares functions that encapsulate and manipulate the information peculiar to a locale.
<codecvt>code conversion facets for various character encodings.

Strings

<string>
<regex>using regular expressions.
Streams and input/output
<fstream>
<iomanip>formatting integers and the precision of floating point values.
<ios>
<iosfwd>
<iostream>
<istream>
<ostream><sstream><streambuf>

Language support

<exception>the base class of all exceptions thrown by the Standard Library.
<limits>properties of fundamental numeric types.
<new>C++ memory management.
<typeinfo>Provides facilities for working with C++ run-time type information.
Thread support library
<thread>working with threads.
<mutex>mutual exclusion: mutexes, locks, and call once.
<condition_variable>synchronization primitives used to block a thread until notified by some other thread that some condition is met or until a system time is reached.
<future>C++ program can use to retrieve in one thread the result (value or exception) from a function that has run in the same thread or another thread.

Numerics Library

<complex>complex numbers.
<random>(pseudo-)random numbers
<valarray>
<numeric>numeric operations.

Introduction à la STL (Standard Template Librairy)

La librairie nous livre une implémentation des Containers (vecteurs, listes chaînées, ensemble de données ordonnées.

Il est primordiale de choisir parmi les classes de la STL, celle qui est adaptée à votre besoin. En choissant une mauvaise classe trop complexe pour votre besoin vous perdriez un temps de calcul considérable.

Cet article détaille l'utilisation et la complexité des différents objets de la STL : pair, list, vector, set, map.


Autres librairies du C++

  • Apache C++ Standard Library
  • Boost (C++ libraries)
  • C POSIX library
  • C standard library
  • Standard library
  • C++ Technical Report 1

  • Les bons sites en Langage C++

     Personnellement, j'ai toujours trouvé ce que je cherchais, Ici :

    
    http://www.cplusplus.com/reference/
    CPlusPlus.com

    jeudi 23 mai 2013

    Langage C++

    Vous cherchez les caractéristiques principales du Langage C++. Vous développez dans d'autres langages comme VB, Java ou C# alors pour vous remettre rapidement au C++ voici les caractéristiques du Langage C++.

    Des liens, des cours en C++

    Mots clefs en C++

    Sur le site de Microsoft :
    http://msdn.microsoft.com/fr-fr/library/vstudio/2e6a4at9.aspx

    Sur le site de Comment ça Marche :
    http://www.commentcamarche.net/contents/1474-mots-cles-du-c
    Les mots clefs communs au C et au C++ sont indiqués en caractères gras.

    Petits rappels sur les mots clefs en C++  :
    auto : déclare une variable qui a une durée de vie locale. Elle sera initialisée à chaque fois.
    friend : permet à une fonction ou une classe pour accéder aux membres privés et protégés d'une classe.
    mutable : s'applique aux données membres non statiques et non constantes d'une classe. Permet à une fonction déclarée const de modifier cette variable.
    register : spécifie que la variable doit être stockée dans un registre de l'ordinateur, si possible.
    const_cast : modifie le cast d'une constante afin de pouvoir la modifier.
    delegate : déclare un type qui représente un pointeur de fonction.

    Cours en C++

    En anglais :
    http://www.cprogramming.com

    Allocateur de mémoire sécurisé en C/C++

    http://haypo.developpez.com/article/halloc/

    Design Patterns en C++

    Sur ce blog :
    http://monblogcplusplus.blogspot.fr/2013/05/design-patterns-en-c.html