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++.
Introduction
Langage de programmation créé en 1979 chez Bell Labs par Bjarne Stroustrup, c'est une surcouche du langage C pour en faire un langage Objet.
Les normes ISO : 1998 (C++98), 2003 (C++03), 2011 (C++11), 2014 (C++14) et 2020 (C++2020) ...
Documentation complète et à jour du langage C++ est disponible sur la page Wiki :
cppreference.com
Vous pouvez, dans l'url, remplacer "en." par "fr." pour avoir le site en français.
Le standard C ++ 11 est une extension majeure du standard C ++ après C++ 98
auto: déclaration de type autodéductible par la déclaration
auto i = 0, d = 0.0; // i is int and d double
decltype: est utile lors de la déclaration de types difficiles ou impossibles à déclarer à l'aide de la notation standard, comme les types liés à lambda ou les types qui dépendent de paramètres de modèle.
C++14 est souvent appelée correction de bogue de C++11
C++03 corrige les rapports de défauts de C++98
Mots clefs en C++
Microsoft - Keywords (C++)
C'est l'entrée de la doc complète, un peu spécifique Microsoft, des explications trop longues.
Comment Ca Marche - Mots clés 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 dont le type est déduit de son initialisation. Utile lors de l'utilisation d'expressions lambda.
friend : Permet à une fonction ou une classe d'accéder aux membres privés et protégés d'une classe.
Une fonction déclarée friend est une fonction qui n'est pas membre d'une classe mais qui a accès aux membres privés et protégés de la 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 : Supprime les attributs const, volatile et __unaligned d'une classe..modifie le cast d'une constante afin de pouvoir la modifier.
delegate : Déclare un type qui représente un pointeur de fonction.
Lambda expressions
Cours en C++
Cprogramming.com - Learn C and C++ Programming
En anglais mais c'est une Somme, tout sur la programmation en langage C et C++. Achetez son livre pour soutenir ce travail colossale. Il y a les réponses à toutes les questions des exemples de programmation de projets complets.
Pour réviser rapidement, des questionnaires (quiz en C en C++), ludiques :
Cprogramming.com - C++ and Computer Science Quizzes
The basics of C++ : 1 - C, 2 - C, 3 - A, 4 - B, 5 - C, 6 - B, 7 - D
Allocation de mémoire en C/C++
En langage C++, comme en langage C, un très gros problème c'est l'allocation mémoire. Où sont les objets, comment sont-ils instanciés et libérés lorsque le programme n'en a plus besoin, en sachant que toutes allocation en dehors d'une mémoire libre et c'est le crash !
Developpez.com - Allocation de mémoire sécurisée en C et C++
C'est un début, il faut redéfinir les fonction d'allocation de base, malloc, realloc et free pour en faire des fonctions qui :
- gèrent les cas d'échec
- lister les pointeurs libres ou non libres
- allouer et désallouer avec vérification de possibilité
Attention : haypo s'est fait racheter son nom de domaine "haypocalc.com" pointe maintenant vers tout autre chose ... LoL.
Même si malloc et free existent en C++, il est préférable d'utiliser new et delete ... surtout si l'on travaille avec des objets.
En cas d'échec new lève une exception de type std::bad_alloc et le programmeur n'a plus à écrire le test déprécié :
if( NULL==data ) error();
Il faut également noter que caster malloc est considéré comme une erreur la méthode utilisée pas les programmeurs expérimentés est :
double *p;
p = malloc( n * sizeof (*p ));
Design Patterns en C++
Sur ce blog :
Langage C++ - Design Patterns en C++
Un sujet indispensbale
Class, Agrégation, Héritage, Polymorphism
Pour aller plus loin :
DriveSodevlog - support C++
Merci à IUT Informatique Bordeaux 1